如何像使用shell一样使用python脚本执行操作?

时间:2019-06-13 06:54:43

标签: python shell

我是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”,则环境会激活

1 个答案:

答案 0 :(得分:0)

这是因为它仅激活子过程命令的env。该命令是在子进程中创建的,而不是在主进程(运行python脚本的主进程)中创建的。

此行结束时,您的子进程终止:

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

有一个old post,但很黑。