且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Linux环境下的 pyenv的安装

更新时间:2022-03-24 18:36:13

CentOS上安装pyenv:


在安装pyenv前,需要先安装如下的依赖包:

在 CentOS/RHEL/Fedora 下:

1
2
3
4
yum install readline readline-devel readline-static
yum install openssl openssl-devel openssl-static
yum install sqlite-devel
yum install bzip2-devel bzip2-libs



安装pyenv如下命令:

curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash


会自动创建了一个/root/.pyenv的目录,存放它的各种配置文件。

vim ~/.bash_profile 添加如下3行:

1
2
3
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"


source ~/.bash_profile


常用命令:

pyenv install --list    # 列出当前可用的python版本

pyenv install 3.6.0     # 安装3.6.0版本的python

pyenv rehash       # 更新数据库,在安装 Python 或者其他带有可执行文件的模块之后,需要对数据库进行更新:

pyenv versions    # 列出目前本机上已经安装有哪些版本的python



pyenv local 3.6.0    # 切换python版本,在当前目录及子目录下改变python版本(这个设置在我们切换到其它目录就失效


pyenv local --unset  # 取消改变,恢复为system版本的python

pyenv global 3.6.0   # 全局改变python版本【强烈不建议使用】

pyenv shell 3.6.0    # 改变当前shell的python版本(在当前shell始终是生效的)



其他几个命令:

pyenv uninstall 3.6.0   # 卸载3.6.0版本的python(注意卸载后,还要去 /root/.pyenv/version删掉对应的行,不然使用pyenv versions 时候还会有警告)


pyenv update          # 更新pyenv版本




#######  重点:使用pyenv管理virtualenv   #####

[root@t71 /root]# pyenv virtualenv 3.6.0 proj1   # 产生一个proj1的虚拟环境,采用3.6.0版本的python(3.6.0的python需要事先安装好)


[root@t71 /root]# pyenv versions   查看目前已配置了哪些pyenv

  system

* 3.6.0 (set by PYENV_VERSION environment variable)

  3.6.0/envs/proj1   #新版本的pyenv都是放到这种路径下的

  proj         # 这个是兼容旧版本存在的

  


[root@t71 /root]# pyenv local 3.6.0/envs/proj1     切换到新建的proj1环境下(必须事先存在这个proj1)


(3.6.0/envs/proj1) [root@t71 /root]# pyenv version    # 可以看到PS1的内容已经变了,前面多了(3.6.0/envs/proj1)

3.6.0/envs/proj1 (set by /root/.python-version)


## 查看下这个虚拟环境的存放路径:

(3.6.0/envs/proj1) [root@t71 /root]# cd /root/.pyenv/versions/

(3.6.0/envs/proj1) [root@t71 /root/.pyenv/versions]# ll

total 0

drwxr-xr-x 7 root root 63 2017-05-06 13:52 3.6.0/

lrwxrwxrwx 1 root root 38 2017-05-06 14:38 proj1 -> /root/.pyenv/versions/3.6.0/envs/proj1/   # 可以看到是软链接



(3.6.0/envs/proj1) [root@t71 /root]# pyenv local system   回到系统默认的python版本

[root@t71 /root]# 

[root@t71 /root]# pyenv uninstall proj1 或 pyenv virtualenv-delete proj1   删除proj1这个虚拟环境

pyenv-virtualenv: remove /root/.pyenv/versions/3.6.0/envs/proj1? y


[root@t71 /root]# pyenv versions   

* system (set by /root/.python-version)    # 可以看到proj1已经没有了


[root@t71 /root]# pyenv virtualenvs    查看目前已配置了哪些virtualenv











本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1922629,如需转载请自行联系原作者