簡體   English   中英

如何為python安裝子進程模塊?

[英]How to install subprocess module for python?

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

在 Python 2.7 中無需安裝此模塊。 它是一個內置的標准模塊。

文檔顯示它已添加到 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

錯誤文本具有誤導性。 大多數子進程命令期望 shellcmd 作為字符串列表提交。

在這些情況下,我強烈建議使用 shlex 模塊:

    import shlex
    
    shell_cmd = "test.py"
    
    subprocess_cmd = shlex.split(shell_cmd)
    subprocess.call(subprocess_cmd)

或者在這個簡單的情況下:

    subprocess.call(["test.py"])

嘗試這個:

pip install subprocess.run

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM