pip无法在pypi网站上找到这个模块。 你能告诉我秘密,如何安装它?
我需要模块通过subprocess.call生成新的shell进程。我看过很多例子,人们使用import subprocess
,但没有人知道它是如何安装的。
错误,我得到了(以防万一我已经失去理智并且不明白发生了什么):
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\Users\Alexander\Desktop\tests-runner>python run.py
Traceback (most recent call last):
File "run.py", line 165, in <module>
main()
File "run.py", line 27, in main
subprocess.call('py.test')
File "C:\Python27\lib\subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python27\lib\subprocess.py", line 710, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 958, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
答案 0 :(得分:7)
无需在Python 2.7中安装此模块。它是内置的标准模块。
documentation表明它已添加到Python 2.4版的库中。它已经和我们在一起很长时间了。
您在问题更新中显示的错误并不比找不到文件错误更平淡。可能无法找到您尝试调用Popen
的可执行文件。
该回溯表示已安装subprocess
并已导入。问题只是对subprocess.call('py.test')
的调用失败了。
为了将来参考,这是您尝试导入尚未安装的模块时遇到的回溯类型:
>>> import foo Traceback (most recent call last): File "", line 1, in ImportError: No module named foo
答案 1 :(得分:2)
错误文本具有误导性。大多数subprocess-commands都希望shellcmd作为字符串列表提交。
在这些情况下,我强烈建议使用shlex模块:
import shlex
shell_cmd = "py.test" # or should it be "test.py" ?
subprocess_cmd = shlex.split(shell_cmd)
subprocess.call(subprocess_cmd)
或在这个简单的情况下:
subprocess.call(["py.test"])