我最近在一台新电脑上安装了python。
我找不到os.system()
失败或可能失败的原因。
我在主脚本中尝试了os.popen()
和子进程,但这并不能解决问题。在
最关心的是为什么这个简单的os.system()
测试不能从一开始。在
在命令提示符下:
>python
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v. 1500 32 bit (Intel)] on win32
>>> import os
>>> os.system("dir")
-1
>>> os.system("cmd /c dir")
-1
>>> import subprocess
>>> subprocess.call("dir", shell=True)
Traceback ...
...
WindowsError: [Error 2] System could not locate file
>>> exit()
dir
(list of files)
我以dir为例,但是当我调用系统路径中包含的任何其他程序时,也会发生同样的情况。它将直接从命令行运行,但不通过系统操作系统或子流程。在
我想出来了。我怀疑这和环境变量有关。在
尽管我添加了所有需要的程序
Path
,但我从未查看过ComSpec环境变量。在显然,我补充道
添加到
^{pr2}$comspec
中我仍然不确定原因,但是如果您想通过}调用文件,这会导致问题。在
os.system
或subprocess
或{解决方案是同时添加从Path到
ComSpec
的所有路径,或者简单地删除Java二进制文件的路径。在这样做了,一切都很好,(甚至dir)。在
dir
不是可执行文件,而是cmd.exe
命令。在尝试:
或者
^{pr2}$相关问题 更多 >
编程相关推荐