Linux環境下的 pyenv的安裝

  • 2019 年 10 月 5 日
  • 筆記

CentOS上安裝pyenv:

在安裝pyenv前,需要先安裝如下的依賴包:

在 CentOS/RHEL/Fedora 下:

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行:

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