簡體   English   中英

我如何使用python腳本來做,就像我使用shell一樣?

[英]How can I use a python script to do as if I was using a shell?

我對python和shell(以及一般編程......)有點新手。我的問題是,我得到了一個工作正常的環境,我需要激活這個環境才能啟動python腳本。

在shell中手動執行此操作(我在Windows上)可以正常工作(即使用“激活myenv”激活環境,然后使用“python myprog.py”啟動我的腳本)。

現在,我想從python腳本中完成所有這些。 我想在我的shell中啟動一個腳本,在該shell中激活我的環境,然后啟動myprog.py

我在互聯網上檢查並找到“os.system”和“subprocess.run”,但兩者都不起作用

myprog.py

import subprocess
subprocess.run(['activate','myenv'], shell=True)

print('done')

這是根據我在互聯網上找到的內容激活我的環境的簡短腳本。 必須把shell = True否則我有一個錯誤: FileNotFoundError: [WinError 2] The system cannot find the file specified

使用命令“python myprog.py”執行myprog.py工作正常,但我的shell中的環境未激活。 但如果我直接在我的shell中寫“激活myenv”,環境就會激活

這是因為它只激活子進程命令的env。 該命令在子進程中創建,而不是在主進程(運行python腳本的位置)中創建。

當此行結束時,您的子進程將終止:

subprocess.run(['activate','myenv'], shell=True)

有一個老帖子,但它很hacky。

暫無
暫無

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

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