pyenv安裝,
pyenv安裝
https://github.com/pyenv/pyenv,這裡是github的地址,pyenv是一個類似virtualenv的工具,提供python的多版本環境控制
安裝依賴環境(root使用者):
yum -y install make gcc patch gdbm-devel openssl-devel sqlite-devel zlib-devel bzip2-devel readline-devel
安裝pyenv(普通使用者):
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile$ exec "$SHELL"
查看支援的python版本:
$ pyenv install --list
安裝具體的某個版本:
[ocean@jenkins ~]$ pyenv install 3.6.2Downloading Python-3.6.2.tar.xz...-> https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xzInstalling Python-3.6.2...Installed Python-3.6.2 to /home/ocean/.pyenv/versions/3.6.2
[root@jenkins ~]# pyenv install 3.5.2pyenv: /root/.pyenv/versions/3.5.2 already existscontinue with installation? (y/N) yDownloading Python-3.5.2.tar.xz...-> https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xzInstalling Python-3.5.2...patching file Lib/venv/scripts/posix/activate.fishInstalled Python-3.5.2 to /root/.pyenv/versions/3.5.2
查看安裝的python版本:
[ocean@jenkins py362]$ pyenv versions* system (set by /home/ocean/py362/.python-version) 3.5.2 3.6.2
ok,簡單使用可以查看協助:
[ocean@jenkins ~]$ pyenv helpUsage: 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 executableSee `pyenv help <command>' for information on a specific command.For full documentation, see: https://github.com/pyenv/pyenv#readme
如何切換python版本呢?
使用pyenv的local命令:
[ocean@jenkins ~]$ tree .├── py352└── py3622 directories, 0 files
我在家目錄下分別按照安裝的python版本號碼建立的對應的目錄,我們來測試一下:
[ocean@jenkins ~]$ cd py352/[ocean@jenkins py352]$ python -VPython 2.7.5
現在沒有執行pyenv的local命令時,python版本是系統預設的2.7.5,然後我們來使用pyenv切換版本:
[ocean@jenkins py352]$ pyenv local 3.5.2[ocean@jenkins py352]$ python -VPython 3.5.2
直接就成了3.5.2,然後我們在退回到py362目錄:、
[ocean@jenkins py352]$ cd ../py362[ocean@jenkins py362]$ python -VPython 2.7.5[ocean@jenkins py362]$ pyenv local 3.6.2[ocean@jenkins py362]$ python -VPython 3.6.2
退回到家目錄看下:
[ocean@jenkins py362]$ cd [ocean@jenkins ~]$ python -VPython 2.7.5
還是系統預設的python版本,這樣就實現了python版本得切換。
[ocean@jenkins py362]$ ll /home/ocean/py362 -atotal 8drwxrwxr-x 2 ocean ocean 28 Sep 4 19:08 .drwx------ 6 ocean ocean 4096 Sep 4 19:08 ..-rw-rw-r-- 1 ocean ocean 6 Sep 4 19:04 .python-version[ocean@jenkins py362]$ cat .python-version 3.6.2
pyenv就是通過特定目錄下的
.python-version
檔案來進行python特定版本的切換,刪掉該檔案就迴歸到系統預設python程式。
如果你在某個特定python版本目錄下,想使用系統的預設python程式,可以在特定目錄下執行:
$ pyenv local system
這樣就實現了python多版本的任意切換。