[英]Subprocess Popen to run python command
我需要在Popen中運行python命令。 問題是命令NEEDS必須在python3中運行,並且我需要它具有可移植性,這意味着我不能真正在每種情況下都使用python3
別名...
我的計算機中python
已經是正確的版本,而其他計算機中正確的是python3
。 我試圖在文件的開頭插入#!/usr/bin python3
,然后以python
身份運行,但是沒有用。
我無法修改環境變量以將python3
更改為python
。 我想知道是否有一種方法可以檢查我需要使用的方法,還是只有在Popen命令中將python3
更改為python
的方法...
我嘗試運行的Popen命令非常簡單,不,我不能僅導入文件並將其用作類...它需要通過Popen運行。 同樣,virtualenv或類似的選項也不是可選的。
subprocess.Popen(['python', 'main.py'], shell=True, universal_newlines=True)
shebang是顯示要使用的解釋器的第一行,例如#!/usr/bin/python
或#!/usr/bin/python3
-僅當您自己未明確選擇解釋器時才會受到尊重:運行python foo.py
,操作系統正在調用特定的Python解釋器,並將foo.py
作為參數傳遞(它將解釋為應運行的腳本的名稱); 而當您運行./foo.py
,您是在告訴操作系統本身來確定要使用哪個解釋器來運行foo.py
,這是通過查看shebang來完成的。
要將其留給操作系統選擇,只需顯式指定腳本名稱:
subprocess.Popen(['./main.py'], universal_newlines=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.