关于网络:如何调用存储在网络上的不同 python 脚本?

 2022-01-08 

How can I call a different python script that is stored on my network?

我有一个 TKinter 脚本,它允许用户从现有脚本列表中进行选择,输入特定脚本所需的变量,然后将变量传递给该脚本以运行。当所有文件都存储在本地时,它会顺利运行。一旦我试图将它移到网络上以便同事可以使用它,它就会停止执行脚本。

没有错误信息,只是没有任何反应。为了简化故障排除,我编写了一个简单的脚本,它只调用第二个打印"成功"的脚本,同样的问题发生在简单脚本在本地工作的地方,但不是存储在网络上时。

Script1.py:

1
2
3
import os
path=r'G:/files/Script2.py'
os.system(path)

Script2.py:

1
print("success")

没有错误消息,如果我尝试 os.path.exists(path) 它返回 "True"。

os.system(path) 即使已知路径不正确也不返回错误。

如果我尝试打开实际上不正确的路径,我会得到: FileNotFoundError: [Errno 2] No such file or directory.

我还尝试设置路径等于全局驱动器名称而不是 G,使用 IP 地址,更改斜杠的方向,在 G: 之后放置双斜杠,而不使用 r\\'\\'。一切都给了我相同的结果。

我也尝试使用 path=os.getcwd() "//Script2.py" 因为目前这些文件都在网络上的同一个文件夹中,再次没有成功。

我目前正在家里通过 VPN 访问网络。

通过谷歌搜索我想出了这些,但也无法从他们那里得到解决方案:

通过python程序访问网络文件夹
使用 Python,如何访问 windows 网络上的共享文件夹?


之前使用python3或python关键字

1
os.system("sudo python3 {}".format(path))

或:

1
os.system(f"sudo python3 {path}")