venv, pyenv, virtualenv, pipenv异同

文章目录

  • ref
  • virtualenv
    • 使用virtualenv的一些心得和坑
  • pyenv
  • pyenv-virtualenv
  • pyvenv
  • venv



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。

你可能感兴趣的:(venv, pyenv, virtualenv, pipenv异同)