按照 requirements.txt 文件中的预安装包创建一个 virtualenv

41

创建虚拟环境将会创建一个预安装了pip、setuptools和wheels的虚拟Python环境。

除了这3个默认的包,有没有一种方式可以指定在该虚拟环境中预安装哪些包?是否可以通过CLI参数、文件或某些类型的环境变量来实现。

也就是说,是否有类似于virtualenv venv && venv/bin/pip install -r requirements.txt这样的命令可以一次运行?


3
你已经回答了自己的问题。用那个短语就是这么做的。 - jbasko
我在想,virtualenv是否可以自己提供这些功能。 - Ilia Sidorenko
1
我只缺少一个细节:你如何命名环境?我通常为每个项目创建一个环境。 - GDB
1
刚刚回答了自己的问题。给出: $ cd my_project_folder $ virtualenv venv "venv" 是环境的名称,它可以是任何东西。来源:《Python漫游指南》中的“Pipenv和虚拟环境”,按照惯例使用“venv”,并且建议这么做。 - GDB
@GDB 实际上,目前推荐使用 .venv。 - Huge
“.env”也很常见(个人而言,我更喜欢它而不是“.venv”,因为它少了一个字符,同样明显/规范)。甚至在GitHub的预制Python gitignore中都有它:https://github.com/github/gitignore/blob/master/Python.gitignore - AmphotericLewisAcid
4个回答

87

一般而言,您需要遵循以下步骤:

  • git clone <repo> 克隆仓库
  • cd <repo> 进入克隆的仓库目录
  • pip install virtualenv (如果您还没有安装virtualenv)安装virtualenv
  • virtualenv venv 创建新的虚拟环境(这里叫'venv')
  • source venv/bin/activate 进入虚拟环境
  • pip install -r requirements.txt 安装当前环境所需的依赖项

10
在安装 venv 后,我认为您还需要执行 python -m virtualenv env 步骤。该步骤有助于创建虚拟环境。 - Bjorn Roche
5
我只执行了 python -m virtualenv venv 命令,不需要安装 venv。 - roeland
@r03,你使用的是哪个版本的Python?这意味着virtualenv现在作为Python的基本包安装了吗? - Soviut
我安装了Python 3.7.3,但可能之前已经安装过了,所以我这里可能有些错误。 - roeland
source venv/Scripts/activate应该在后续版本中能够正常工作,或者您可以像在此处建议的那样创建符号链接 https://github.com/python/cpython/issues/97586。 - Marek Vajda
这太棒了。记住,你要使用与原始环境相同的Python版本来创建你的虚拟环境。所以如果你的原始环境是Python 3.8,你可以这样做:virtualenv --python=python3.8 venv - undefined

1
尝试这个: virtualenv --system-site-packages venv

1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

1

1
我在 https://github.com/pypa/pipenv 上看到了很多活动 - 看起来并没有被放弃。 - Carl Walsh
1
我尝试了pipenv并且喜欢它......直到我尝试在Docker容器中运行某些东西。 尽管我花费了相当多的时间和精力进行研究,但pipenv在Docker容器中无法工作。 不过,你可能会有更好的技能/运气。 - Goodword
1
截至本评论日期,https://www.kennethreitz.org/essays/announcing-pipenv 是一个失效的链接。 - FrostKiwi
@FrostKiwi 看起来有一个新的URL:https://kennethreitz.org/essays/2017/01/23/announcing-pipenv 但实际上,这个工具似乎并没有得到很好的维护,你最好使用venv和pip。 - Ilia Sidorenko

0
如果你使用Windows(powershell),以下是你需要执行的步骤:
  1. 执行pip install virtualenv来安装virtualenv(如果尚未安装)
  2. 执行virtualenv venv来创建新的环境
  3. 执行venv/Scripts/activate来进入虚拟环境
  4. 执行pip install -r requirements.txt来在当前虚拟环境中安装所需的依赖

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接