我想编写一个执行 3 件事的 python 脚本:
在我的项目中,我使用普通的虚拟环境包。我必须在 Debian 机器上进行。
我试图用
os.system()
模仿 bash 命令,但没有用下面的代码做到这一点。import os
os.system('python3 -m venv test6_env')
os.system('source test6_env/bin/activate')
os.system('pip install -r requirements.txt --user')
问题 virtualenv 无法激活且未安装要求。
是否有一个简单的技巧可以很好地在 python 中编写这 3 个步骤?
最佳答案
问题是 os.system('source test6_env/bin/activate')
只为这个特定的 os.system()
调用产生的子 shell 激活虚拟环境,而不是任何后续的。相反,只需一次调用即可运行所有 shell 命令,例如
os.system('python3 -m venv test6_env && . test6_env/bin/activate && pip install -r requirements.txt')
或者,将您的命令放在 shell 脚本中并使用
os.system()
执行,或者更好的是,使用 subprocess
模块中的函数,例如import subprocess
subprocess.run('/path/to/script.sh', check=True)
关于Python:如何编写虚拟环境构建和激活脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53151899/