我正在创建一个脚本来设置和运行整个 Django 项目。
venv_parent_dir = os.path.abspath(os.path.join(os.getcwd(),os.pardir))
venv_dir = os.path.abspath(os.path.join(venv_parent_dir, 'fvenv'))
subprocess.run(args=['virtualenv', '-p', 'python3', venv_dir])
os.popen('/bin/bash --rcfile %s'%(venv_dir+'/bin/activate'))
我用上面的代码创建了一个虚拟环境,然后激活它。现在我想在激活的虚拟环境中安装requirements.txt
文件
subprocess.run(args=['pip3', 'install', '-r', 'requirements.txt'])
我尝试使用 subprocess
,但它不是安装在虚拟环境中,而是安装在操作系统 Python 中。
最佳答案
目前,os.popen
命令不会影响 subprocess.run
运行的环境。这意味着您的 subprocess.run
调用使用系统 pip3
而不是来自 virtualenv 的 pip
。您可以使用完整路径从 virtualenv 中使用 pip
:
import os
pip = os.path.join(venv_dir, 'bin', 'pip')
subprocess.run(args=[pip, 'install', '-r', 'requirements.txt'])
通过使用/path/to/venv/bin/pip
,您不必先激活虚拟环境。
关于python - 如何使用python脚本安装Django项目requirement.txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48903282/