python - 为什么仅在填充窗口时才会出现 "command not recognized"错误?

标签 python windows

我的记录表应用程序有一个用于创建新的空白记录表的菜单选项。当我打开工作表窗口时,我可以毫无问题地打开新窗口,使用 subprocess.Popen() 即可。

但是,在 Windows 下(我还没有在其他操作系统上测试过),如果我打开一个新窗口然后使用“打开文件”对话框用文件中的数据填充字段,我将不再能够创建新窗口。一旦它被填充,Windows 就会给我

'foo.py' is not recognized as an internal or external command, operable program or batch file.

我不明白什么会导致 Windows 突然无法识别 Popen() 调用。据我所知,我没有任何代码会以任何方式影响它。

最佳答案

从错误消息来看,您似乎需要将“foo.py”的完整路径传递给您的 Popen 调用。通常只有“foo.py”会在你当前的工作目录中搜索,但我发现这在 Windows 上可能有点不可预测。你的似乎在打开文件对话框中跳来跳去。

其次,为了更好的衡量,您似乎需要将 foo.py 作为参数传递给 python.exe 可执行文件,而不是执行 foo.py 本身。同样,我会通过路径指定它。

为了安全起见,像这样:

subprocess.Popen([r'C:\Python2.5\python.exe', r'C:\path\to\foo.py'])

关于python - 为什么仅在填充窗口时才会出现 "command not recognized"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/283431/

相关文章:

python - 无法在 ubuntu 12.04 上启动碳 Graphite

Python 线程。如何锁定线程?

python - 在 python 中发送十六进制数据包

python - 如果键,值对存在于字典中跳过python

windows - 如何同步安装 MSI?

c++ - 失去焦点时全屏 GLFW 窗口消失

windows - "Register"一个 .exe,因此您可以从 Windows 中的任何命令行运行它

windows - 安装和更新 ActiveX 控件需要什么权限?

Python:将类名作为参数传递给函数?

windows - 是否可以在没有管理员权限的情况下在 Virtualbox 共享文件夹中使用符号链接(symbolic link)?