avatar

fengkx's Blog

fengkx

Student & Coder

Guangzhou, China
Build with Hexo and Next.js

python 版本管理和虚拟环境

Pyenv

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

  • Ubuntu/Debain:
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

列出当前虚拟环境

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

删除虚拟环境

pyenv uninstall my-virtual-env

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

导出依赖

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

换源

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

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

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

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

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/

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

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

参考

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处。

本文链接: https://www.fengkx.top/post/pyenv-and-virtualenv/

发布于: 2018-05-12