ref
venv, pyenv, virtualenv, pipenv有什么异同
python虚拟环境管理:pyvenv、pyenv、virtualenv
版本的切换主要原理就是在环境变量前面插入当前环境的路径(shim),不存在什么覆盖之说
virtualenv
第三方库
使用virtualenv的一些心得和坑
- 路径不能有中文,否则环境变量会不生效
- 默认创建的虚拟环境是没有系统版python已安装的库。默认参数应该是–no-site-packages,是没有已安装的那些库,如果要带上,需要使用virtualenv testenv --system-site-packages,但这样创建的虚拟环境也会出现问题。现象如下:
我卸载系统python的wheel库,虚拟环境的也被卸载
在虚拟环境安装wheel,系统python不受影响
卸载虚拟环境的wheel库,系统python的也被卸载
但是问题是:
所以使用–system-site-packages参数创建的虚拟环境,会与系统python环境耦合,最好还是不要带这个参数
pyenv
第三方库
- 至于anaconda 是一个python的发行版,就像ubuntu有ubuntu13,ubuntu14这样,发行版主要是有带界面吧(个人粗浅的理解)
- 所以也可以pyenv切换到anaconda的版本,然后再用anaconda的conda进行创建虚拟环境然后使用conda进行管理(你开心就好)
pyenv-virtualenv
pyenv的一个插件
pyvenv
python3自带的的一个标准工具,但是在python3.6中已经弃用,取而代之的是 venv (python3 -m venv)。
venv
python3自带的命令行工具,可以通过运行 python3 -m venv 启动。另外在某些发行版中,venv需要额外安装,比如Ubuntu需要安装 python3-venv。venv和virtualenv很接近,主要差别是不需要单独copy python可执行文件到相应目录。如果你不需要支持python2,那么你可以直接使用venv。不过到目前为止,python社区仍然更偏向于使用virtuanenv。