你知道为什么吗操作系统()可能会失败?

2024-04-20 02:19:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近在一台新电脑上安装了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为例,但是当我调用系统路径中包含的任何其他程序时,也会发生同样的情况。它将直接从命令行运行,但不通过系统操作系统或子流程。在


Tags: import脚本default进程os系统dir原因
2条回答

我想出来了。我怀疑这和环境变量有关。在

尽管我添加了所有需要的程序Path,但我从未查看过ComSpec环境变量。在

显然,我补充道

C:\Program Files (x86)\Java\jre7\bin

添加到comspec

^{pr2}$

我仍然不确定原因,但是如果您想通过os.systemsubprocess或{}调用文件,这会导致问题。在

解决方案是同时添加从Path到ComSpec的所有路径,或者简单地删除Java二进制文件的路径。在

这样做了,一切都很好,(甚至dir)。在

dir不是可执行文件,而是cmd.exe命令。在

尝试:

os.system("cmd /c dir")

或者

^{pr2}$

相关问题 更多 >