doudou0o blog

沉淀知识 分享知识


  • Home

  • Archives

  • Tags

  • About

  • Search

python版本共存和虚拟环境

Posted on 2017-03-12 Views:

python有很多版本,如何在同一台系统中共存这些版本而且不会冲突,是python开发者一个重要的需求,所以诞生出了Python版本管理器pyenv。另外每个Python项目都会有很多包需要导入,而另一些项目并不需要,如果所有包都加入到系统Python的包目录下的话一方面不好管理另一方面容易出现包的冲突,因此需要为每个项目建立一个虚拟的独立的Python环境就太好了,于是virtualenv和conda工具就出现了。

python 版本

2.7.X
3.X
Anaconda2
Anaconda3
python有很多版本,如何在同一台系统中共存这些版本而且不会冲突,是python开发者一个重要的需求,所以诞生出了Python版本管理器pyenv。另外每个Python项目都会有很多包需要导入,而另一些项目并不需要,如果所有包都加入到系统Python的包目录下的话一方面不好管理另一方面容易出现包的冲突,因此需要为每个项目建立一个虚拟的独立的Python环境就太好了,于是virtualenv和conda工具就出现了。

pyenv

pyenv是一个管理各个python版本的管理器。可以在系统里同时保留多个python版本,等需要时定义需要的版本。

项目地址

安装

看项目地址中的readme

使用

1
pyenv install --list

查看pyenv可安装的版本列表

1
2
pyenv install anaconda2-4.2.0
pyenv uninstall x.x.x

安装和卸载指定版本,会将python版本安装在$(pyenv root)/versions/中

1
pyenv versions

查看当前已经安装了的python版本。输出内容中,system关键字是系统python版本。 *表示当前环境所处的版本。

1
pyenv global anaconda2

全局切换为anaconda科学计算环境(不建议这么做),做了如果要恢复,则将最后一个参数改为—unset

1
pyenv local python3.4.1

当前环境接环。在当前目录以下。如果要恢复,则将最后一个参数改为—unset

virtualenv

本来这是一个单独的软件用来虚拟一个python版本环境,让每个工作环境都有一套独立的python各自的第三方插件互不影响。然而在 pyenv 下有一个插件 pyenv-virtualenv 他可以在 pyenv 的环境下担负起 virtualenv 的事情。(如果使用的是原生python可以用这个工具,如果用的是anaconda则不用这个,用下一章说的conda工具来完成虚拟环境)

项目地址

安装

看项目地址中的readme

使用

1
pyenv virtualenv 2.7.1 env271

在当前目录下创建一个 python 版本为2.7.1的环境,环境名字为 env271。 这个环境的真实目录位于~/.pyenv/versions/

1
pyenv activate env271

(创建时并不激活)激活当前环境。此时已经进入虚拟环境,在当前环境下所有pip等操作都不会影响系统环境和系统路径。

1
pyenv deactivate

离开已激活的环境,切换回系统环境。但并没有被删除,下次依旧可以启动。

1
pyenv uninstall env271

删除一个环境,当然也可以到真实目录下删除文件夹。

conda

本来不想用这个的,但是因为 pyenv-virtualenv 有一些问题,无法很好的管理conda环境,比如有一些anaconda 自带的一些命令(例如pylint)无法被使用。因此还是老老实实使用 conda 来管理虚拟环境。

安装

conda 是自带于 anaconda 的所以并不需要额外安装,如果在 anaconda 环境中就可以使用。conda 不仅可以进行 环境管理,还可以包管理,和对 anaconda和conda 进行版本升级。

使用

由于conda使用方法太多,因此这里罗列一些常用的主要是一些虚拟环境的命令。具体的到官网文档去查看一下。

首先conda工具是需要在anaconda环境下的,因此先执行pyenv local anaconda3-4.2.0进入anaconda环境后就可以执行conda工具了。

1
2
conda create --name myflakes python=x.x anaconda
conda create --help

创建一个虚拟环境。可以指定名字,指定包,甚至制定python(这样的话就python版本管理了所以不建议使用,python版本管理交给pyenv),所以命令中 python=x.x 可以不写

1
2
conda info --envs
conda env list

罗列已经创建的环境,两条命令是一样的。

1
2
source activate myflakes //Linux,OSX
activate myflakes        //Windows

激活一个环境。和virtualenv一样,创建不等于激活。激活后才能真正使用虚拟环境。
如果发生错误Error: activate must be sourced. Run 'source activate envname'说明activate命令没有找对,导致错误。吧命令改成

1
source <PATH TO ANACONDA>/anaconda3/bin/activate <ENV NAME>

这样就能成功建立虚拟环境了。

1
2
deactivate myflakes
source deactivate myflakes

退出虚拟环境。

1
conda remove --name myflakes --all

删除一个虚拟环境。

1
conda create --name flowers --clone snowflakes

复制一个虚拟环境。这个是个不错的好功能。

1
2
conda env export > environment.yml
conda env create -f environment.yml

conda还能吧环境配置文件导出,在另一台机器上重新读入配置文件,就能复刻你的环境了。

其他使用

conda 还能进行包的管理。调用的是 pip 所以也很棒。

1
2
3
conda list
conda list -n myflakes
conda search numpy //查询package

查看当前环境已安装包,用-n指定后,就是查看某个环境下的已安装包

1
2
3
conda install -n  myflakes numpy
conda update -n myflakes numpy
conda remove -n myflakes numpy

为某个指定的环境安装包,升级包,删除包。

1
2
3
conda update conda
conda update anaconda
conda update python

它还能升级自身和anaconda和python的版本。

它和pip一样也能设置安装包的镜像位置。其余还有能使用R命令等等,都到官网文档中搜索一下。

doudou0o WeChat Pay

WeChat Pay

doudou0o Alipay

Alipay

# Python
10. Regular Expression Matching
拉格朗日乘数法笔记
  • Table of Contents
  • Overview
doudou0o

doudou0o

Never forget what you are, for surely the world will not. Make it your strength. Then it can never be your weakness. Armor yourself in it, and it will never be used to hurt you.
15 posts
5 tags
  1. 1. python 版本
  2. 2. pyenv
    1. 2.1. 安装
    2. 2.2. 使用
  3. 3. virtualenv
    1. 3.1. 安装
    2. 3.2. 使用
  4. 4. conda
    1. 4.1. 安装
    2. 4.2. 使用
    3. 4.3. 其他使用
© 2022 doudou0o
Powered by Hexo v3.9.0
|
Theme – NexT.Gemini v7.3.0