繁体   English   中英

Python:如何编写虚拟环境构建和激活脚本?

[英]Python: How to script virtual environment building and activation?

我想写一个做3件事的python脚本:

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

在我的项目中,我使用常规的virtualenviroment软件包。 我必须在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()调用生成的子外壳激活虚拟环境,而不会为后续的任何os.system()激活虚拟环境。 相反,只需一次调用即可运行所有shell命令,例如

os.system('python3 -m venv test6_env && . test6_env/bin/activate && pip install -r requirements.txt')

或者,将您的命令放在shell脚本中,然后使用os.system()执行该命令,或者最好使用subprocess os.system()模块中的函数(例如,

import subprocess
subprocess.run('/path/to/script.sh', check=True)

我现在必须采取一种方法,所以我将其留在这里。 您必须安装了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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM