centos下pyenv和pyenv-virtualenv的使用

本文参考了Python版本管理工具 Pyenv的安装与使用
安装pyenv的方法见上一篇文章,本文主要介绍pyenv的使用以及pyenv-virtualenv的安装和使用。

pyenv指定国内镜像源的python版本安装

如果直接用pyenv install x.x.x 直接下载和安装python版本,速度会比较慢,因此可以先从国内镜像源下载,再用pyenv安装

用搜狐镜像源
wget http://mirrors.sohu.com/python/2.7.16/Python-2.7.16.tar.xz  -P ~/.pyenv/cache
或者用淘宝镜像源
wget https://npm.taobao.org/mirrors/python/3.6.4/Python-3.6.4.tar.xz -P ~/.pyenv/cache

安装,可以用-v显示安装详情

pyenv install 2.7.16 -v

pyenv的常用命令有下面这些:

  • 查看所有可用的pyenv命令
pyenv commands
  • 安装和下载python版本(会将版本安装到$(pyenv root)/versions)
pyenv install 2.7.8
  • 卸载指定python版本
pyenv uninstall 2.7.8
  • 设定local python版本(通过将版本号写入当前目录的.python-version)
pyenv local 2.7.16

不输入版本号就是查看的意思,取消设定使用

pyenv local --unset
  • 设定global python版本(通过将版本号写入~/.pyenv/version)
pyenv global 2.7.16
  • 设定shell python版本(通过设定环境变量PYENV_VERSION)
pyenv shell 2.7.16
  • 列出所有可用的python版本,包括Anaconda、Jython、pypy等
pyenv install --list
  • 为pyenv管理的所有python库安装shims,当安装了新的python或库的时候,需要执行这条命令。
pyenv rehash
  • 显示当前激活的python版本
pyenv version
  • 列出pyenv管理的所有python版本
pyenv versions
  • 显示pyenv激活的可执行文件的全路径
pyenv which python3.3
  • 列出安装有给定命令的所有python版本
pyenv whence 2to3

安装pyenv-virtualenv

具体安装过程见https://github.com/pyenv/pyenv-virtualenv
我的电脑在安装pyenv的时候默认就将pyenv-virtualenv自动安装好了,所以不用额外再安装了。

  • 创建一个虚拟环境
# 基于指定python版本创建一个虚拟环境
pyenv virtualenv 2.7.16 venv2.7.16
# 基于当前激活的python版本创建一个虚拟环境
pyenv virtualenv venv2.7.16
  • 列出存在的虚拟环境
[root@VM_0_6_centos ~]# pyenv virtualenvs
  2.7.16/envs/venv2.7.16 (created from /root/.pyenv/versions/2.7.16)
  venv2.7.16 (created from /root/.pyenv/versions/2.7.16)
[root@VM_0_6_centos ~]# ll $(pyenv root)/versions/
total 8
drwxr-xr-x 7 root root 4096 Nov 10 20:53 2.7.16
drwxr-xr-x 6 root root 4096 Nov 10 20:46 3.6.4
lrwxrwxrwx 1 root root   44 Nov 10 20:53 venv2.7.16 -> /root/.pyenv/versions/2.7.16/envs/venv2.7.16
  • 激活和去激活虚拟环境。如果已经在shell中配置了eval “$(pyenv virtualenv-init -)”,那么pyenv-virtualenv可以在进入一个目录时自动
    激活/去激活虚拟环境,只要这个目录中存在.python-version文件且文件中包含有效的虚拟环境名称。.python-version文件的值可以被pyenv local命令设置。
[root@VM_0_6_centos ~]# pyenv activate venv2.7.16
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
(venv2.7.16) [root@VM_0_6_centos ~]# python -V
Python 2.7.16
(venv2.7.16) [root@VM_0_6_centos ~]# pyenv deactivate

进入/退出目录时,自动激活/去激活虚拟环境的情况

[root@VM_0_6_centos ~]# pyenv versions
  system
  2.7.16
  2.7.16/envs/venv2.7.16
* 3.6.4 (set by /root/.pyenv/version)
  venv2.7.16
[root@VM_0_6_centos ~]# cd workspace/
[root@VM_0_6_centos workspace]# pyenv local venv2.7.16
(venv2.7.16) [root@VM_0_6_centos workspace]# cd ..
[root@VM_0_6_centos ~]# cd workspace/
(venv2.7.16) [root@VM_0_6_centos workspace]# cd ..
[root@VM_0_6_centos ~]#

删除虚拟环境

pyenv uninstall venv2.7.16
或者
pyenv virtualenv-delete venv2.7.16

你可能感兴趣的:(python工具)