软件简介:
pyenv
,是一款特别好用的Python版本管理器,程序员可以建立不同的目录,在不同的目录里分别运行不同版本的Python, 并且互不影响,安装的包也互不影响。github项目地址:https://github.com/yyuu/pyenv
pyenv-virtualenv
, 是pyenv
的一个plugin(插件),可以用来创建基于不同Python版本的干净的虚拟环境。github项目地址:https://github.com/yyuu/pyenv-virtualenv
安装思路:
先安装macOS的软件包管理器brew
,然后用brew
安装pyenv
和pyenv-virtualenv
1. 安装brew
软件包管理器
brew全名Homebrew,是macOS下的一款软件包管理器(macOS没有自己的软件包管理器),类似于CentOS下面的yum
,Ubuntu下的apt-get
命令。
1 |
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
2. 用brew
命令安装pyenv
、pyenv-virtualenv
12 |
brew install pyenvbrew install pyenv-virtualenv |
会先安装autoconf
, pkg-config
, openssl
, readline
安装过程中我们可以看到一些Caveats(警告),需要我们手动处理一下。
首先link readline到系统lib:
1 |
brew link readline --force |
然后根据Caveats的提示修改环境变量,vim ~/.bash_profile
添加下面内容:
123456 |
#pyenv settingsexport PYENV_ROOT=/usr/local/var/pyenvif which pyenv > /dev/null; then eval "$(pyenv init -)"; fi#pyenv-virtualenv settingsif which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi |
上面的两处设置让pyenv
和pyenv-virtualenv
更好用,用命令的时候可以补全。
设置完关闭终端,然后重启终端,即可生效。
3. pyenv的使用方法
**警告:
pyenv
安装Python是编译安装的,在使用之前要先安装zlib
和SQLite3
,要不然安装会报错。
安装zlib
和SQLite3
并链接:
1234 |
brew install zlibbrew install sqlite3brew link zlib --forcebrew link sqlite3 --force |
然后根据Caveats的提示修改环境变量,vim ~/.bash_profile
添加下面内容:
12 |
export PATH="/usr/local/opt/sqlite/bin:$PATH" |
用pyenv --help
可以查看pyenv
的使用帮助:
常用的几个pyenv命令:
pyenv install x.y.z
:安装 大专栏 macOS下Python多版本控制软件的安装:pyenv、pyenv-virtualenvPython,x.y.z
是Python的版本,如pyenv install 3.6.2
。
pyenv local x.y.z
:设置当前目录的Python版本为x.y.z
, 如pyenv local 3.6.2
。
pyenv versions
:查看安装的版本,前面带*
号的表示当前目录下正在使用的版本。系统自带的Python是System
,后安装的版本的都是版本号
。
下面给出使用的例子:
示例:
12345678910111213141516171819202122232425 |
$ pyenv install 3.6.2 # 安装3.6.2版本的Python$ pyenv install 2.7.13 # 安装2.7.13版本的Python$ pyenv versions # 可以看到3个版本,system为系统自带的版本* system (set by /usr/local/var/pyenv/version) 2.7.13 3.6.2$ cd # 到家目录$ mkdir Python36 # 创建Python3.6的工作目录$ cd Python36$ pyenv local 3.6.2 # 使当前工作目录使用Python3.6.2版本$ python -V # 查看一下当前目录用Python的版本,确实是3.6.2Python3.6.2$ pip -V # 查看一下pip版本,是3.6的pippip 9.0.1 from /usr/local/var/pyenv/versions/3.6.2/lib/python3.6/site-packages $ cd # 回到家目录$ mkdir Python27 # 创建python2.7的工作目录$ cd Python27$ pyenv local 2.7.13 # 使当前工作目录使用Python2.7.13版本$ python -V # 查看一下当前目录用Python的版本,确实是2.7.13Python 2.7.13$ pip -V # 查看一下pip版本,是2.7的pippip 9.0.1 from /usr/local/var/pyenv/versions/2.7.13/lib/python2.7/site-packages (python 2.7) |
4. pyenv-virtualenv
的使用方法
pyenv-virtualenv是用来创建一个干净的虚拟Python环境的命令,通常在创建干净的新项目时候使用。使用方法如下:
1.创建虚拟环境–pyenv virtualenv 版本号 虚拟环境名
。
1 |
$ pyenv virtualenv 3.6.2 venv-3.6.2 |
- 创建项目,让项目使用干净的Python3.6.2的虚拟环境:
123456 |
[yulongjun@yulongjun ~]$ mkdir Learning-Python3[yulongjun@yulongjun ~]$ cd Learning-Python3/[yulongjun@yulongjun Learning-Python3]$ pyenv local venv-3.6.2(venv-3.6.2) [yulongjun@yulongjun Learning-Python3]$ cd ..[yulongjun@yulongjun ~]$ cd Learning-Python3/(venv-3.6.2) [yulongjun@yulongjun Learning-Python3]$ |
我们会发现:只要我们进入Learning-Python3
目录,就会自动激活virtualenv,退出Learning-Python3
目录,就会关闭virtualenv。
如果要关闭自动激活,可以运行命令
pyenv deactivate
,要重新启用的话,运行pyenv activate 虚拟环境名
。