Pyenv 和 virtualenv 是非常不同的工具,它们以不同的方式工作以执行不同的操作:
Pyenv 是bash扩展- 不适用于Windows- 会拦截您对python,pip等的调用,以将其定向到多个系统python工具链之一。因此,您始终拥有在选定的python版本中安装的所有库,因此,这对于必须在不同版本的python之间进行切换的用户来说非常有用。
VirtualEnv 是纯python,因此可在任何地方使用,它会在激活环境中本地复制python和pip的副本( 可选的特定版本), 该副本可能包含或可能不包含指向当前系统工具链的链接,如果不能,则可以仅将已知的库子集安装到该环境中。这样一来,几乎可以肯定,对于测试和部署而言,要好得多,因为您 确切 知道使用 了 哪个库,使用了哪个版本,并且全局更改不会影响您的模块。
venv python > 3.3
请注意,从Python 3.3开始,VirtualEnv有一个内置实现,称为venv(在某些安装中,有一个名为pyvenv的包装器-在Python
3.6中已弃用该包装器),应该优先使用它。为了避免包装程序可能出现问题,通常最好直接使用来使用它,
/path/to/python3-m venv desired/env/path也可以
py在Windows上使用出色的python选择器
py -3 -m venvdesired/env/path。它将创建用
desired/env/pathconfigure指定的目录并适当地填充它。通常,这非常类似于使用VirtualEnv。
其他工具
有许多值得一提和考虑的工具,因为它们可以帮助使用上述一种或多种:
- VirtualEnvWrapper管理和简化VirtualEnv- Cross平台 的使用和管理。
- pyenv-virtualenv, 由 pyenv-installer安装,为PyEnv工具提供了用于管理和与VirtualEnv交互的工具-通过此工具,您可以进行基本安装,包括一个以上版本的python,并在每个版本中创建隔离的环境 -Linux / OS- X 。 Johann Visagie建议
- PyInstaller可以获取可能在VirtualEnv下开发和测试的python代码,并将其捆绑在一起,以便它可以运行未安装python 版本的 平台-请注意,它不是交叉编译器,因此您需要Windows(虚拟) -)机器来构建Windows安装等,但是即使您可以确定将安装python但不能确定python的版本和所有库是否与您的代码兼容,它也可以派上用场。



