首页 > 解决方案 > Python:如何编写虚拟环境构建和激活脚本?

问题描述

我想编写一个执行 3 件事的 python 脚本:

  1. 用python3搭建虚拟环境
  2. 激活这个新的虚拟环境。( bash: 源 myvirtenv/bin/acticate)
  3. 使用 requirements.txt 安装软件包(bash: pip install -r )

在我的项目中,我使用普通的 virtualenviroment 包。我必须在 Debian 机器上完成。

我试图模仿 bash 命令,os.system() 但没有使用下面的代码。

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 脚本?

标签: pythonpython-3.xvirtualenvsetup-deployment

解决方案


问题是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)

推荐阅读