我是python和shell的新手(和一般的编程...) 我的问题是,给了我一个运行良好的环境,我需要激活该环境才能启动python脚本。
在外壳中手动执行此操作(我在Windows上)效果很好(即使用“ activate myenv”激活环境,然后使用“ python myprog.py”启动我的脚本。
现在,我只想通过python脚本来完成所有这些工作。我想在我的外壳中启动一个脚本,该脚本在该外壳中激活我的环境,然后启动myprog.py
我已经在Internet上进行了检查,找到了“ 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中写“ activate myenv”,则环境会激活
答案 0 :(得分:0)
这是因为它仅激活子过程命令的env。该命令是在子进程中创建的,而不是在主进程(运行python脚本的主进程)中创建的。
此行结束时,您的子进程终止:
subprocess.run(['activate','myenv'], shell=True)
有一个old post,但很黑。