使用带有Python3.3的virtualenvwrapper是否意味着我不能(或不应该)使用pyvenv?

Jon*_*ley 18 python virtualenv virtualenvwrapper python-3.3 python-venv

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

Python 3.3附带pyvenv内置于标准库中,旨在取代virtualenv.

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

据推测这并不重要 - 如果我想在Python3.3上使用virtualenvwrapper,我应该高兴地让它使用virtualenv而不是pyvenv,并且(目前)会不会受到任何不良影响?

小智 31

对不起,这个答案有点延迟.pyvenv并旨在取代的virtualenv,实际上的virtualenv在Python 3取决于标准库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.https://docs.python.org/3/library/venv.html (10认同)
  • Virtualenv在评论时没有将标准库的实现(venv模块)子类化(virtualenv 1.11.x,我想象的不是1.12.x).Python 3.4中的pyvenv通常应该安装pip和setuptools(一些linux发行版'pythons目前已禁用此功能). (5认同)
  • 好主人,这个答案也许用中文写成,我理解的基本相同.不是抱怨答案本身,而是虚拟环境和Python的状态(pyenv,pyenv-virtualenv,pyenv-virtualenvwrapper,pyvenv,virtualenv,virtualenvwrapper,venv,....)它真的需要这么难吗? (2认同)