macOS下Python多版本控制软件的安装:pyenv、pyenv-virtualenv

macOS下Python多版本控制软件的安装:pyenv、pyenv-virtualenv

软件简介

pyenv,是一款特别好用的Python版本管理器,程序员可以建立不同的目录,在不同的目录里分别运行不同版本的Python, 并且互不影响,安装的包也互不影响。github项目地址:https://github.com/yyuu/pyenv

pyenv-virtualenv, 是pyenv的一个plugin(插件),可以用来创建基于不同Python版本的干净的虚拟环境。github项目地址:https://github.com/yyuu/pyenv-virtualenv

安装思路
先安装macOS的软件包管理器brew,然后用brew安装pyenvpyenv-virtualenv


1. 安装brew软件包管理器

brew全名Homebrew,是macOS下的一款软件包管理器(macOS没有自己的软件包管理器),类似于CentOS下面的yumUbuntu下的apt-get命令。

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 用brew命令安装pyenvpyenv-virtualenv

12
brew install pyenvbrew install pyenv-virtualenv

会先安装autoconf, pkg-config, openssl, readline

macOS下Python多版本控制软件的安装:pyenv、pyenv-virtualenv

安装过程中我们可以看到一些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

上面的两处设置让pyenvpyenv-virtualenv更好用,用命令的时候可以补全。

设置完关闭终端,然后重启终端,即可生效。

3. pyenv的使用方法

**警告:pyenv安装Python是编译安装的,在使用之前要先安装zlibSQLite3,要不然安装会报错。

安装zlibSQLite3并链接:

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的使用帮助:

macOS下Python多版本控制软件的安装:pyenv、pyenv-virtualenv

常用的几个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
  1. 创建项目,让项目使用干净的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 虚拟环境名

上一篇:python django 基本测试 及调试 201812


下一篇:python – 在当前shell中取消激活pyenv