pyenv管理多版本python
- 2020 年 1 月 6 日
- 筆記
安裝不同的python版本並不是一件易事,更何況想在同一主機上來回切換不同版本的python是難上加難!大家都知道多版本會導致互相干擾,但是不是不不能解決呢??
確切回答:不是,因為有一個學習python的好幫手pyenv來管理不同的python版本!
一、首先來安裝pyenv:
安裝步驟也是很簡單,直接在github上下載到本地,然後,分別執行以下命令即可
[root@cml_ali_sz_120 ~]# git clone https://github.com/yyuu/pyenv.git ~/.pyenv
[root@cml_ali_sz_120 ~]# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /etc/profile [root@cml_ali_sz_120 ~]# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /etc/profile [root@cml_ali_sz_120 ~]# echo 'eval "$(pyenv init -)"' >> /etc/profile
使以上配置生效:
[root@cml_ali_sz_120 ~]# source /etc/profile
到這裡pyenv已經安裝完成了,我們可以通過–help來查看pyenv的用法:
[root@cml_ali_sz_120 ~]# pyenv --help Usage: pyenv <command> [<args>] Some useful pyenv commands are: commands List all available pyenv commands local Set or show the local application-specific Python version global Set or show the global Python version shell Set or show the shell-specific Python version install Install a Python version using python-build uninstall Uninstall a specific Python version rehash Rehash pyenv shims (run this after installing executables) version Show the current Python version and its origin versions List all Python versions available to pyenv which Display the full path to an executable whence List all Python versions that contain the given executable See `pyenv help <command>' for information on a specific command. For full documentation, see: https://github.com/pyenv/pyenv#readme
二、pyenv的使用:
首先可以使用install命令查看支援python的版本
[root@cml_ali_sz_120 ~]# pyenv install --list Available versions: 2.1.3 2.2.3 2.3.7 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 2.5.1 ...
我們這裡選擇了兩個版本來測試在同一主機上安裝多個版本的python:
[root@cml_ali_sz_120 ~]# pyenv install -v 3.6.0 [root@cml_ali_sz_120 ~]# pyenv versions * system (set by /root/.pyenv/version) 3.6.0 [root@cml_ali_sz_120 ~]# pyenv install -v 2.7.13 [root@cml_ali_sz_120 ~]# pyenv versions * system (set by /root/.pyenv/version) 2.7.13 3.6.0
現在我們這個系統中就有三個python的版本了,下面就是如何去切換版本,注意的是'*'表示當前正在使用的版本。可以通過global切換版本:
(這裡可能會擔心到的切換版本時,版本所對應的依賴會不會一起切換,這個不用害怕相關的依賴也會跟著切換過來,所以完全不用去擔心通系統下不同版本的相互影響,下面演示pip的版本也會隨著python版本變更而變更)
[root@cml_ali_sz_120 ~]# pyenv global 3.6.0 [root@cml_ali_sz_120 ~]# pyenv versions system 2.7.13 * 3.6.0 (set by /root/.pyenv/version) [root@cml_ali_sz_120 ~]# pip --version pip 9.0.1 from /root/.pyenv/versions/3.6.0/lib/python3.6/site-packages (python 3.6) [root@cml_ali_sz_120 ~]# pyenv global 2.7.13 [root@cml_ali_sz_120 ~]# pyenv versions system * 2.7.13 (set by /root/.pyenv/version) 3.6.0 [root@cml_ali_sz_120 ~]# pip --version pip 9.0.1 from /root/.pyenv/versions/2.7.13/lib/python2.7/site-packages (python 2.7)
最後切回到系統版本:
[root@cml_ali_sz_120 ~]# pyenv global system
如果想要刪除python版本,則可以使用uninstall命令即可:
[root@cml_ali_sz_120 ~]# pyenv uninstall 2.7.13