【问题标题】:Does using virtualenvwrapper with Python3.3 mean I cannot (or should not) be using pyvenv?在 Python3.3 中使用 virtualenvwrapper 是否意味着我不能(或不应该)使用 pyvenv?
【发布时间】:2013-08-21 18:22:47
【问题描述】:

Virtualenvwrapper 是一个围绕 Python 的 virtualenv 的用户友好的 shell。

Python 3.3 在标准库中内置了 pyvenv,旨在取代 virtualenv。

但是如果我在 Python3.3 上安装 Virtualenvwrapper,它仍然会安装 virtualenv,这让我相信它不会在幕后使用 'pyvenv'。

大概这并不重要 - 如果我希望在 Python3.3 上使用 virtualenvwrapper,我应该很乐意让它使用 virtualenv 而不是 pyvenv,并且(目前)不会受到任何不良影响?

【问题讨论】:

标签: python virtualenv python-3.3 virtualenvwrapper python-venv


【解决方案1】:

对不起,这个答案有点延迟。 pyvenv 不是旨在取代 virtualenv,实际上 Python 3 中的 virtualenv 依赖于标准库 venv 模块。

pyvenv 命令创建了一个绝对最小的虚拟环境,可以在其中安装其他软件包。

virtualenv 的 Python 3 版本实际上继承了标准库的实现,并提供了钩子来自动安装 setuptools 和 pip 到环境中,而 pyvenv 自己不这样做。

据我所知 virtualenvwrapper 仅依赖于 virtualenv,因为 mkvirtualenv 或 mkproject 命令允许您指定要安装到新环境中的软件包,这仅适用于 virtualenv 已经安装了 setuptools 和点子。

因此,为了回答您的问题,我相信您应该能够在 pyvenv 创建的环境中使用 virtualenvwrapper,只要您遵循 virtualenvwrapper 的放置位置的约定,并且您可以手动安装 setuptools 并将 pip 安装到环境中或不使用virtualenvwrapper 的任何包管理功能。

【讨论】:

  • 哇。不仅清晰明确,而且答案与我想听到的答案相差无几。非常感谢。
  • 在 Python 3.4 中,pyenv 确实安装了 pip。 docs.python.org/3/library/venv.html
  • 此外,(在 3.3 中,如果不是更早版本)pyvenv 包括(链接到)系统和用户站点包,当使用 --system-site-packages 选项时。
  • Virtualenv 在发表此评论时没有子类化标准库的实现(venv 模块)(virtualenv 1.11.x,我想不是 1.12.x)。从 Python 3.4 开始的 pyvenv 通常应该安装 pip 和 setuptools(一些 linux 发行版的 python 目前已禁用此功能)。
  • 天哪,这个答案还不如用中文写,我理解的数量基本相同。不是抱怨答案本身,而是关于虚拟环境和 Python 的状态(pyenv,pyenv-virtualenv,pyenv-virtualenvwrapper,pyvenv,virtualenv,virtualenvwrapper,venv,......)真的需要这么难吗?
猜你喜欢
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
相关资源
最近更新 更多