问题描述
我有一个TKinter脚本,它允许用户从现有脚本列表中进行选择,输入特定脚本所需的变量,然后将变量传递给该脚本以运行。当所有文件都存储在本地时,它会顺利运行。一旦我尝试将其移动到网络上,以便同事可以使用它,它将停止执行脚本。
没有错误消息,什么都没有发生。为了简化故障排除,我编写了一个简单脚本,该脚本仅调用第二个打印“成功”的脚本,并且在简单脚本在本地工作但不在网络上存储时也会发生相同的问题。
Script1.py:
import os
path=r'G:/files/Script2.py'
os.system(path)
Script2.py:
print("success")
没有错误消息,如果我尝试os.path.exists(path),它将返回“ True”。
os.system(path)即使已知路径不正确也不会返回错误。
如果我尝试打开实际上不正确的路径的路径,则会得到:FileNotFoundError:[Errno 2]没有这样的文件或目录。
我还尝试使用IP地址设置路径,使其等于全局驱动器名称而不是G,更改斜杠的方向,在G:之后放置双斜杠,而不使用r''。一切都给我相同的结果。
我还尝试使用path = os.getcwd()+“ // Script2.py”,因为当前文件都位于网络上的同一文件夹中,再次失败。
我目前正在家里通过VPN访问网络。
Accessing a network folder through a python program Using Python,how can I access a shared folder on windows network?
解决方法
在之前使用python3或python关键字
os.system("sudo python3 {}".format(path))
或:
os.system(f"sudo python3 {path}")