我在 Mac OSX 上。
我有一個程式,我試圖從終端呼叫下載的庫。如果我不知道圖書館在哪里,這是不可能的。我將使用 pip 作為一個常見的庫示例
>>> os.system("pip -h")
32512
>>> os.system("which pip")
256
我已閱讀本應對256錯誤,但是,我還是不明白它為什么出現在這里。它說它“經常用于指示引數決議失敗”但是確切的命令有效,因為這對我來說似乎不是引數決議錯誤。
我希望能夠做一些事情來達到以下效果:
os.system(os.system("which pip") " -h")
如果有其他方法可以做到這一點,我很想聽聽
uj5u.com熱心網友回復:
不要那樣使用os.system(也不要使用which)。試試這個來找到一個程式:
import os
for bin_dir in os.environ.get("PATH").split(":"):
if 'my_program' in os.listdir(bin_dir):
executable_path = os.path.join(bin_dir, 'my_program')
break
請注意,這確實假設PATH由啟動腳本的任何行程正確設定。如果您從 shell 運行它,那應該不是問題。
一般來說,使用os.system呼叫常見的 *NIX 實用程式并嘗試決議結果是單一的——它正在撰寫 python,就好像它是一個 shell 腳本一樣。
然后,不要使用systemto run ,而是使用此答案中pip描述的解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/310941.html
