【发布时间】:2013-06-13 06:22:26
【问题描述】:
当我运行以下命令时:
import subprocess
subprocess.check_call('dir', shell=True)
结果总是显示C:\的内容,无论我在哪个目录中启动了Python解释器。我什至试过这个:
import subprocess
subprocess.check_call('dir', shell=True, cwd='C:\\foo\\bar\\baz')
这也不起作用。我也无法使用 Scons(基于 Python 的构建工具)构建应用程序,原因似乎相同:
scons: Building targets ...
cl /Fobuild\Animation.obj /c src\Animation.cpp /TP /DSFML_STATIC /EHsc /MD /Zi /Ideps/Box2D_v2.2.1 / Ideps/LuaJIT-2.0.2/src /Ideps/SFML-2.0/include /Ideps/include /nologo
Animation.cpp
c1xx : fatal error C1083: Cannot open source file: 'src\Animation.cpp': No such file or directory
scons: * [build\Animation.obj] Error 2
scons: building terminated because of errors.
请注意,src\Animation.cpp 实际上确实 存在。我假设这发生在 b/c cl.exe 是从 C:\ 运行而不是 Python 解释器运行的实际位置。
我认为这可能是我的环境变量的问题,但我检查了它们,一切似乎都正常。我还删除/重新安装了 Python,但无济于事。
这是怎么回事?
【问题讨论】:
-
print(os.getcwd())的输出是什么? -
也可以尝试不使用
shell=True。它在运行 shell 时可能会出现奇怪的行为,而您通常不需要它。 -
丢弃不必要的
()参数。