0

当我运行以下命令时:

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/ccl.exe运行C:\而不是 Python 解释器运行的实际位置。

我认为这可能是我的环境变量的问题,但我检查了它们,一切似乎都很好。我还删除/重新安装了 Python,但无济于事。

这里发生了什么?

4

2 回答 2

0

您应该转义 '\' 或使用原始字符串 ( r'....')。

>>> 'C:\foo\bar\baz'
'C:\x0coo\x08ar\x08az'
>>> r'C:\foo\bar\baz'
'C:\\foo\\bar\\baz'
于 2013-06-13T06:28:53.537 回答
0

修复!问题是注册表中的自动运行设置......不确定它是如何设置的,但确实如此。要解决此问题,请访问:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor

在注册表中,删除 AutoRun 设置。我的自动运行看起来像这样:

cd C:\

这完全把一切都搞砸了。

于 2013-06-16T18:58:38.420 回答