Mac上安裝多個版本的Python
阿新 • • 發佈:2019-02-12
簡介
利用Mac包管理工具brew安裝pyenv,pyenv用來管理所有python版本。如果沒有安裝brew,先安裝一下吧。
安裝pyevn
$ brew install pyenv
$ pyenv -v
pyenv 1.2.6
檢視所有的python版本(pyenv管理的所有版本)
$ pyenv versions
* system (set by /Users/xxx/.pyenv/version)
* 表示當前正在使用的版本,system表示用的是系統python版本
檢視可安裝python版本
$ pyenv install --list Available versions: 2.1.3 2.2.3 2.3.7 ...
選擇版本進行安裝
$ pyenv install 3.5.5 python-build: use openssl from homebrew python-build: use readline from homebrew Downloading Python-3.5.5.tar.xz... -> https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tar.xz Installing Python-3.5.5... python-build: use readline from homebrew Installed Python-3.5.5 to /Users/xxx/.pyenv/versions/3.5.5
牆內環境,會卡在這裡,可以開代理,或者使用國內映象。
使用國內映象:
v=3.5.5|wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v
檢視所有安裝的版本
$ pyenv versions
* system (set by /Users/xxx/.pyenv/version)
3.5.5
可以看到多了一個3.5.5版
–
我在這一步進行安裝的時候出現了一個錯誤如下:
ownloading Python-3.4.1.tgz...-https://yyuu.github.io/pythons/44a3c1ef1c7ca3e4fd25242af80ed72da941203cb4ed1a8c1b724d9078965dd8 Installing Python-3.4.1... BUILD FAILED (OS X 10.9.5 using python-build 20150124) Inspect or clean up the working tree at /var/folders/zf/1b6kcyd53hg0crv65j108_7m0000gn/T/python-build.20150127150918.87726 Results logged to /var/folders/zf/1b6kcyd53hg0crv65j108_7m0000gn/T/python-build.20150127150918.87726.log Last 10 log lines: File "/private/var/folders/zf/1b6kcyd53hg0crv65j108_7m0000gn/T/python-build.20150127150918.87726/Python-3.4.1/Lib/ensurepip/__main__.py", line 4, in <module> ensurepip._main() File "/private/var/folders/zf/1b6kcyd53hg0crv65j108_7m0000gn/T/python-build.20150127150918.87726/Python-3.4.1/Lib/ensurepip/__init__.py", line 209, in _main default_pip=args.default_pip, File "/private/var/folders/zf/1b6kcyd53hg0crv65j108_7m0000gn/T/python-build.20150127150918.87726/Python-3.4.1/Lib/ensurepip/__init__.py", line 116, in bootstrap _run_pip(args + [p[0] for p in _PROJECTS], additional_paths) File "/private/var/folders/zf/1b6kcyd53hg0crv65j108_7m0000gn/T/python-build.20150127150918.87726/Python-3.4.1/Lib/ensurepip/__init__.py", line 40, in _run_pip import pip zipimport.ZipImportError: can't decompress data; zlib not available make: *** [install] Error 1
使用如下命令即可成功
CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install -v 3.4.1
切換版本
$ pyenv global 3.5.5 # 全域性切換
$ python -V # 驗證一下是否切換成功
此處用也可用local,只對當前目錄生效
$ pyenv local 3.5.5 # 當前目錄及其目錄切換
$ python -V # 驗證一下是否切換成功
此處有坑!
用pyenv versions檢視,明明已經切換成功,但是用python -V卻還是系統版本。原因是pyenv沒有加到$PATH環境變數裡去,解決辦法如下:
export PYENV_ROOT=~/.pyenv
export PATH=$PYENV_ROOT/shims:$PATH
此時,再次檢視python -V,已經成功切換到pyenv指定的版本。
可以把上邊兩句加到~/.bash_profile裡去,永久生效。
有時設定了pyenv local版本後,再設定global會發現沒有生效,可以嘗試:
pyenv local --unset
解除local設定。
要切換回系統版本,用同樣命令:
$ pyenv global system
解除安裝python版本
$ pyenv uninstall 3.5.5
檢視pyenv指令列表
$ pyenv commands
--version
commands
completions
exec
global
help
hooks
init
install
local
prefix
realpath.dylib
rehash
root
shell
shims
uninstall
version
version-file
version-file-read
version-file-write
version-name
version-origin
versions
whence
which