我想编写一个python脚本,它可以做3件事:
在我的项目中,我使用了普通的虚拟环境包。我得在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 stepy吗?
发布于 2018-11-05 09:58:38
问题是,os.system('source test6_env/bin/activate')
只为这个特定的os.system()
调用生成的子subshell激活虚拟环境,而不是为任何后续调用激活虚拟环境。相反,使用单个调用运行所有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)
发布于 2019-05-25 00:13:06
我现在不得不采取一种方法,所以我会把它留在这里。必须安装了virtualenv。希望帮助某人:)
def setup_env():
import virtualenv
PROJECT_NAME = 'new_project'
virtualenvs_folder = os.path.expanduser("~/.virtualenvs")
venv_dir = os.path.join(virtualenvs_folder, PROJECT_NAME)
virtualenv.create_environment(venv_dir)
command = ". {}/{}/bin/activate && pip install -r requirements.txt".format(virtualenvs_folder, PROJECT_NAME)
os.system(command)
https://stackoverflow.com/questions/53151899
复制相似问题