如何使用 python 脚本安装 Django 项目 requirement.txt
How can install Django project requirement.txt with python script
我正在为设置和 运行 整个 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
,您不必先激活虚拟环境。
我正在为设置和 运行 整个 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
,您不必先激活虚拟环境。