您的位置:首页 > 编程语言 > Python开发

创建虚拟运行环境及多版本python切换

2017-04-11 11:38 375 查看
最近由于要装量化方面的包,但是老是出现错误。本来我不想这么麻烦的,就想使用系统中的python环境,但是经过几天几夜的尝试,但是最后发现还是不行。即使是安装anaconda还是有问题,其他网友都没有问题,唯独我问题不断,也许是因为我是小白的原因吧。

下面是我安装虚拟运行环境以及多版本python切换的方法。主要是参考其他网友的安装方法,我只是整合而已。

我们需要的软件包有:pyenv、pyenv-virtualenv。

首先安装pyenv。

这个有几种方法:

一种是

brew install pyenv


另一种是

git clone git://github.com/yyuu/pyenv.git ~/.pyenv


安装后,需要将其写入系统文件中,有些电脑是写入.bashrc文件、有些电脑是写入.bash_profile中,如果系统问价是.zshrc文件,那怎样确定是写入那个文件呢?

Mac OS 一般使用 bash 作为默认 shell,Mac OS 系统的环境变量加载顺序为:
->/etc/profile -> /etc/paths -> ~/.bash_profile  ->~/.bash_login -> ~/.profile  ->~/.bashrc


前两个是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取,如果 ~/.bash_profile 文件存在,则后面的几个文件就会被忽略不读了,如果 ~/.bash_profile 文件不存在,才会以此类推读取后面的文件。~/.bashrc 没有上述规则,它是 bash shell 打开的时候载入的。

我们这这里讲单个用户设置环境变量,而不是全局设置,~/.bash_profile (任意一个文件中添加用户级环境变量),需要注意的是:Linux 里面是 .bashrc,而 Mac 是 .bash_profile,若 bash shell 是以 login 方式执行时,才会读取此文件,该文件仅仅执行一次。

因此,根据上面说的,mac中应该是写入.bash_profile 文件中。

那又怎样查看自己电脑是不是应该写入.zshrc文件中呢?

zsh好像是与bash一样是一种shell语言。

简单的方法就是

cd ~/.bash 看看有没有这样的文件(呵呵)。

其实mac和Linux/Unix默认都是使用Bash。听说zsh是shell语言中的终极shell。不知道使用zsh会是什么感觉,对我这样的小白,还是留着以后慢慢探讨吧。

闲话少说,还是回归正题。

上面提到要将pyenv写入系统文件。

使用vim ~/.bash_profile打开.bash_profile文件。在文件中依次加入

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"


或者在终端上直接使用echo命令:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile #然后需要修改环境变量,使用 Bash Shell 的输入
echo 'export PATH="$PYENV_ROOT/bin:$PATH"  >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile #最后添加pyenv init
exec $SHELL -l     #输入命令重启 Shell,然后就可以重启pyenv


与pyenv整合,实现支持多个Python版本的virtualenv虚拟环境

接着,安装pyenv-virtualenv插件

macOS:

brew install pyenv-virtualenv


使用pyenv安装python版本

前面已经提到如何安装pyenv。下面我将介绍如何使用pyenv安装python版本。

查看可安装的python版本

pyenv install --list


安装指定的python版本

pyenv install 3.4.1


安装对应版本的虚拟环境,取名为venv341

注意:是先用pyenv安装了对应python版本后,在进行下面操作。

pyenv virtualenv 3.4.1 venv341


有些python版本有点大,这样安装会很耗费时间的。

我们可以将python版本下载下来,然后移动到
~/.pyenv/cache/
文件夹中。

~/.pyenv/
文件夹是在安装pyenv模块后就会自动创建的。由于
~/.pyenv/
是隐藏文件,我们可以使用
ls -a
查看。

对应的版本python版本都安装在
~/.pyenv/versions
文件夹中。

使用pip安装的包完成之后,可能需要对数据库进行更新:(务必执行下面命令)

pyenv rehash


python版本切换

全局版本切换:

pyenv global anaconda-2.4.0


局部版本切换

pyenv local python3.4.1


切换和使用新的python虚拟环境:

pyenv activate env271


这样就能切换为这个版本的虚拟环境。通过输入python查看现在版本,可以发现处于虚拟环境下了。

下面基本上你就可以在这个虚拟环境里面为所欲为了 :) 再也不用担心系统路径被搞乱的问题了

如果要切换回系统环境, 运行这个命令即可

pyenv deactivate


那如果要删除这个虚拟环境呢? 答案简单而且粗暴,只要直接删除它所在的目录就好:

rm -rf ~/.pyenv/versions/env271/


或者卸载:

pyenv uninstall env271
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: