繁体   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