【问题标题】:How to create Python Virtual environment within a python script如何在 Python 脚本中创建 Python 虚拟环境
【发布时间】:2020-01-15 04:33:28
【问题描述】:

我需要使用我的本地环境并为特定工具使用虚拟环境,但该工具与我的本地环境存在依赖性问题。 (我已经知道如何在脚本中使用 virtualEnv,这里我试图在脚本中创建一个新的虚拟环境。) 我想在运行时在 python 程序中创建一个 python 虚拟环境(因为我必须在程序结束时删除这个环境)。需要将此环境作为关键字参数 env 传递给 python 子进程。

我知道我可以使用命令作为 python 子进程的参数来创建一个 virtualEnv。我正在寻找其他方法

【问题讨论】:

  • @Nikaidoh 不,那是关于如何使用现有的 virtualEnv,而不是解决如何在脚本中创建一个新的。
  • 为什么 subprocess 不能满足您的需求?

标签: python virtualenv


【解决方案1】:

要从 python 脚本中创建虚拟环境,您可以使用 virtualenv python 模块。

这几乎可以归结为一行代码。

import virtualenv
import os

venv_dir = os.path.join(os.path.expanduser("~"), ".venv")
virtualenv.create_environment(venv_dir)

然后您可以通过访问.venv 文件夹中的activate_this.py 文件来激活此环境,并使用pip 模块安装自定义包。

【讨论】:

  • 有没有办法使用 virtualenv 安装 pip 包?
  • 这个包的install_wheel函数应该是可能的,它在内部使用——但是我从未测试过它是否有效。您可以自己查看代码:github.com/pypa/virtualenv/blob/master/virtualenv.py
  • 相信你可以使用subprocess.run来运行virtualenv的pip。如果我没记错的话,它应该在bin 文件夹中。
猜你喜欢
  • 2023-02-22
  • 2019-12-29
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
  • 2020-09-03
  • 2014-01-24
  • 2016-03-29
  • 2017-07-11
相关资源
最近更新 更多