首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:如何编写虚拟环境构建和激活脚本?

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

Stack Overflow用户
提问于 2018-11-05 09:50:22
回答 2查看 6.5K关注 0票数 7

我想编写一个python脚本,它可以做3件事:

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

在我的项目中,我使用了普通的虚拟环境包。我得在Debian机器上做。

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

代码语言:javascript
运行
复制
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吗?

EN

回答 2

Stack Overflow用户

发布于 2018-11-05 09:58:38

问题是,os.system('source test6_env/bin/activate')只为这个特定的os.system()调用生成的子subshell激活虚拟环境,而不是为任何后续调用激活虚拟环境。相反,使用单个调用运行所有shell命令。

代码语言:javascript
运行
复制
os.system('python3 -m venv test6_env && . test6_env/bin/activate && pip install -r requirements.txt')

或者,将命令放在shell脚本中并使用os.system()执行,或者更好地使用来自subprocess模块的函数。

代码语言:javascript
运行
复制
import subprocess
subprocess.run('/path/to/script.sh', check=True)
票数 9
EN

Stack Overflow用户

发布于 2019-05-25 00:13:06

我现在不得不采取一种方法,所以我会把它留在这里。必须安装了virtualenv。希望帮助某人:)

代码语言:javascript
运行
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53151899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档