18

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

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

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

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

4

1 回答 1

31

抱歉,这个答案有点延迟。pyvenv 并不打算取代 virtualenv,实际上 Python 3 中的 virtualenv 依赖于标准库 venv 模块。

pyvenv命令创建一个可以安装其他包的绝对最小的虚拟环境

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

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

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

于 2013-10-11T07:51:21.290 回答