Python 版本管理和虚拟环境

Pyenv

Python 版本管理工具,可以方便的切换 Python 版本。
可以用它安装不同的 Python 版本 pyenv install < 版本号:3.6.0>
安装时会从 源码编译安装 ,所以要把一系列 Python 编译安装所需的依赖安好

  • Ubuntu/Debain:
1
2
3
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev

编译问题

Pyenv 安装
pyenv 提供了自动安装的工具,执行命令安装即可:
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
但要首先安装 Git

pyenv 常用命令

使用 pyenv commands 显示所有可用命令

- 查看本机安装 Python 版本
pyenv versions
星号表示当前正在使用的 Python 版本。使用 python -V 确认版本。

- 查看可以安装的 Python 版本
pyenv install -l

  • python 安装与卸载
    $ pyenv install <version number> #安装 python
    $ pyenv uninstall <version number> #卸载 python

virtualenv

自动安装 pyenv 后会自动安装一系列插件,其中包括 pyenv-virtualenv 可以用于创建虚拟环境

创建虚拟环境

$ pyenv virtualenv 2.7.10 <env-name 如:flask>

若不指定 python 版本,会默认使用当前环境 python 版本。如果指定 Python 版本,则一定要是已经安装过的版本,否则会出错。环境的真实目录位于 ~/.pyenv/versions

列出当前虚拟环境

1
2
3
pyenv virtualenvs
pyenv activate <env-name> # 激活虚拟环境
pyenv deactivate # 退出虚拟环境

删除虚拟环境

1
pyenv uninstall my-virtual-env

或者在 ~/.pyenv/version/ 目录下找到对应虚拟环境的软连接,删除。真实目录在 相应版本号目录 下的 env 文件夹内

导出依赖

pip freeze > <fileName> 可以在激活了虚拟环境之后导出该虚拟环境下的包,然后 可以通过 pip -r install <fileName> 快速恢复环境依赖包

换源

前面说过 pyenv 安装时会从官网下载源码编译安装,因为墙的原因,下载源码的速度是非常的慢,pip 也是同理。还是换个国内源

换 pip 源:
~/.pip/pip.conf 填入

1
2
3
[global] 
index-url = https://pypi.mirrors.ustc.edu.cn/simple/
trusted-host = pypi.mirrors.ustc.edu.cn

使用中科大的源,也可以用阿里云的

1
2
3
4
5
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com

pyenv 换源:
我个人没有选择换源,而是在 ~/.pyenv/cache/ 目录下用 proxychains 使用 wget 先下载源码再 pyenv install 这样就很顺畅了。下载地址可以先运行一次 pyenv install 就能在命令行中看到。等源码下下来了在安装就很顺畅了。当然编译安装还是比较耗时间的。

参考