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

换源

前面说过 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 就能在命令行中看到。等源码下下来了在安装就很顺畅了。当然编译安装还是比较耗时间的。

参考

0%