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

Posted wangziqiang123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了macOS下Python多版本控制软件的安装:pyenvpyenv-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

1
2
brew install pyenv
brew install pyenv-virtualenv

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

技术图片

安装过程中我们可以看到一些Caveats(警告),需要我们手动处理一下。
首先link readline到系统lib:

1
brew link readline --force

然后根据Caveats的提示修改环境变量,vim ~/.bash_profile添加下面内容:

1
2
3
4
5
6
#pyenv settings
export PYENV_ROOT=/usr/local/var/pyenv
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
#pyenv-virtualenv settings
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi

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

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

3. pyenv的使用方法

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

安装zlibSQLite3并链接:

1
2
3
4
brew install zlib
brew install sqlite3
brew link zlib --force
brew link sqlite3 --force

然后根据Caveats的提示修改环境变量,vim ~/.bash_profile添加下面内容:

1
2
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,后安装的版本的都是版本号

下面给出使用的例子:
示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ 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.2
Python3.6.2
$ pip -V # 查看一下pip版本,是3.6的pip
pip 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.13
Python 2.7.13
$ pip -V # 查看一下pip版本,是2.7的pip
pip 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的虚拟环境:
1
2
3
4
5
6
[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 虚拟环境名

以上是关于macOS下Python多版本控制软件的安装:pyenvpyenv-virtualenv的主要内容,如果未能解决你的问题,请参考以下文章

macos catalina安装python3

多版本python共存,安装三方库到指定python版本

mac下安装2.7和3.6版本的Python

MacOS下安装pip

Anaconda多版本Python管理

如何使用 M1 在 MacOS 上安装 h5py(Keras 需要)?