为了安装Anaconda科学计算环境,控制好python版本,今天上午总算折腾好了。html
学习python有时但愿在python2.7环境下,有时但愿在python3.4环境下,该怎么办呢?python
Anconda的包也不知道适合在什么环境下工做?git
解决多python环境下,python版本切换的工具--pyenv应运而生。同时,另一个工具virtualenv则提供了一种功能, 就是将一个目录创建为一个虚拟的python环境, 这样的话, 用户能够创建多个虚拟环境, 每一个环境里面的python版本能够是不一样的, 也能够是相同的, 并且环境之间相互独立。
下面简要介绍一下安装的过程:github
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv #使用 git 把 pyenv 下载到家目录 $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc #而后须要修改环境变量,使用 Bash Shell 的输入 $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc #最后添加 pyenv init $ exec $SHELL -l #输入命令重启 Shell,而后就能够重启pyenv
$ pyenv install --list
該命令将列出pyenv能够安装的列表,单单列举几个我们关心的python和anaconda把:数据库
2.7.8 # Python 2最新版本 3.4.1 # Python 3最新版本 anaconda-2.4.0 # 支持Python 2.6和2.7 anaconda3-2.0.1 # 支持Python 3.3和3.4
$ pyenv install 3.4.1
该命令会从github上下载python的源代码安装,可是,我这里主要是用来进行科学计算的环境安装,所以,最后选择安装
anaconda-2.4.0(python2.7环境) 和 anaconda3-2.4.0(python3.4环境)。能够选择都安装,以后可使用pyenv进行版本的切换。
注:编程
这里利用pyenv命令安装的python版本都安装在~.pyenv/versions文件夹下,固然,若是你从图形界面进入Ubuntu的用户主目录下可能看不见.pyenv文件夹,这时候,你可使用ls -a
看到隐藏的文件夹。bash
使用pip
安装的包完成以后,可能须要对数据库进行更新:babel
pyenv rehash
pyenv uninstall x.x.x
查看当前已经安装了的python版本:python2.7
pyenv versions
输出结果以下:工具
*system (set by /home/michael/.pyenv/version) 2.7.1 3.4.1 anaconda-2.4.0
system是指系统的python版本;*表示当前环境所处于的python版本
全局版本切换:
pyenv global anaconda-2.4.0
全局切换为anaconda科学计算环境,由于,我如今也不作其余python开发,因此,无需再安装其余环境了。
查看如今的python版本:
michael@michael-ThinkCentre-XXXX:~$ pyenv versions system 2.7.1 3.4.1 * anaconda-2.4.0 (set by /home/michael/.pyenv/version)
有全局版本切换,固然也会有局部环境的切换:
在test文件夹下但愿切换到python3.4.1:
pyenv local python3.4.1
虽然直接安装pip安装virtualenv也行,可是经过pyenv插件的形式安装virtualenv的虚拟环境更加方便,由于以后的操做会比较方便。
参考文章:http://www.tiny-coder.com/home-article-51.html
pyenv-virtualenv插件安装:项目主页:https://github.com/yyuu/pyenv-virtualenv
pyenv virtualenv是pyenv的插件,为UNIX系统上的Python virtualenvs提供pyenv virtualenv命令。
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile source ~/.bash_profile
这个插件将安装在主文件夹下的.pyenv文件夹中。
pyenv virtualenv 2.7.1 env271
再须要建立虚拟环境的文件夹下建立虚拟环境。
这条命令在本机上建立了一个名为env271的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/
注意,命令中的 ‘2.7.1’ 必须是一个安装前面步骤已经安装好的python版本, 不然会出错。
而后咱们能够继续经过 ‘pyenv versions’ 命令来查看当前的虚拟环境。
pyenv activate env271
这样就能切换为这个版本的虚拟环境。经过输入python
查看如今版本,能够发现处于虚拟环境下了。
下面基本上你就能够在这个虚拟环境里面随心所欲了 :) 不再用担忧系统路径被搞乱的问题了
若是要切换回系统环境, 运行这个命令便可
pyenv deactivate
那若是要删除这个虚拟环境呢? 答案简单并且粗暴,只要直接删除它所在的目录就好:
rm -rf ~/.pyenv/versions/env271/
或者卸载:
pyenv uninstall env271
conda list
查看anaconda安装自带的包:michael@michael-ThinkCentre-XXXX:~/test$ conda list # packages in environment at /home/michael/.pyenv/versions/anaconda-2.4.0: # abstract-rendering 0.5.1 np110py27_0 alabaster 0.7.6 py27_0 anaconda 2.4.0 np110py27_0 anaconda-client 1.1.0 py27_0 argcomplete 1.0.0 py27_1 astropy 1.0.5 np110py27_1 babel 2.1.1 py27_0 backports.ssl-match-hostname 3.4.0.2 <pip>
注:
使用conda list
命令的环境时python版本切换到anaconda版本下,否则,这个命令没法来查询。
看上面列表就能知道,anaconda的环境下,也是能使用系统pip
命令安装的包的!
conda install ××××
[package-name]=x.x #指定包的版本
这个经过virtualenv能够作到。Anaconda也正是经过其实现的。下面用conda建立一个名叫python2的版本为python2.7的环境。
conda create -n python2 python=2.7
这样就会在Anaconda安装目录下的envs目录下建立python2这个目录。
向其中安装扩展能够:
直接用conda install并用-n指明安装到的环境,这里天然就是python2。
像virtualenv那样,先activate,而后在虚拟环境中安装。
注:
关于virtualenv
的使用,还需了解,能够参考python生态
下面的操做,貌似会安装不少包,谨慎使用。
conda create -n py34 python=3.4 anaconda
能够选择安装anaconda 不一样的版本,而后按照下面操做,切换版本。Windows/Linux下都有Pycharm。
打开pycharm,打开preference --> project --> project interpreter-->
首先固然是安装你须要的两个不一样版本的python,我安装的是2.7和3.4的,两个版本安装顺序无所谓,可是后面安装的会变成默认的(由于我是后安装的python 3.4,它就变成了默认的python)。
而后去python27 文件夹下面把python.exe更名python2.exe,而后就能够在命令行下经过python或者py来调用3.x,python2来调用2.x。
另外pip的话直接使用 pip2 或者 pip3 就能够了。
简单来讲,你的每个项目均可以拥有一个单独的、孤立的Python环境;你能够把所需的包安装到各自孤立的环境中。1
仍是经过pip安装virutalenv。
sudo pip install virtualenv
安装完以后,运行下面的命令,为你的项目建立孤立的Python环境。
$ mkdir my_project_venv $ virtualenv --distribute my_project_venv # The output will something like: New python executable in my_project_venv/bin/python Installing distribute.............................................done. Installing pip.....................done.
那么这行代码都作了些什么呢?你建立了一个名叫my_project_venv的文件夹,用于存储新的Python环境。--distribute参数告诉virtualenv使用基于distribute包开发的新的、更好的打包系统,而不是基于setuptools的旧系统。你如今只须要知道,--distribute参数将会自动在虚拟环境中安装pip,免去了手动安装的麻烦。随着你的Python编程经验和知识增长,你会慢慢明白这个过程的具体细节。
经过下面的命令,激活虚拟环境:
$ cd my_project_venv $ source bin/activate
使用source命令启动activate脚本以后,你的命令行提示符应该会变成这样:
(my_project_venv)$
虚拟环境的名称会添加在$提示符的前面。
如今运行下面的命令,关闭虚拟环境:
(my_project_venv)$ deactivate
当你在系统层面安装virtualenv时(若是激活了虚拟环境,请先关闭),能够运行下面的命令帮助本身理解。
首先,咱们来看看若是咱们在终端输入python或者pip,系统会使用哪一个执行文件。
$ which python /usr/bin/python $ which pip /usr/local/bin/pip