簡體   English   中英

子進程Popen運行python命令

[英]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.

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