常常遇到這樣的狀況:python
此時須要在系統中安裝多個Python,但又不能影響系統自帶的Python,即須要實現Python的多版本共存。pyenv就是這樣一個Python版本管理器。 pyenv能夠進行全局的 Python 版本切換,也能夠給單個項目提供對應的 Python 版本。用了 「pyenv」之後,就能夠很容易的安裝不一樣的 Python 版本,不一樣版本之間的切換也變得 so easy。git
Pyenv只會管理經過Pyenv安裝的Python版本,你本身在Python官網上下載的直接安裝的Pyenv
並不能被管理!!!
一樣除了系統自帶的python包外,其餘直接安裝
的python包是識別不出來
的,即便使用的brew安裝的也識別不出來.github
brew install pyenv
複製代碼
可是github提示了一句話shell
After installation, you'll need to
add eval "$(pyenv init -)" to your profile
(as stated in the caveats displayed by Homebrew — to display them again, usebrew info pyenv). You only need to add that to your profile once.數據庫
意思就是說咱們須要在profile文件裏面添加一句bootstrap
eval "$(pyenv init -)"
複製代碼
博主親測,若是沒有這一步,後面執行pyenv global [version]
是不會成功的。bash
在終端中輸入以下命令,進入當前用戶的Home目錄框架
cd ~
複製代碼
輸入以下命令,打開.bash_profile文件機器學習
open .bash_profile
複製代碼
如不存在,則輸入以下命令,建立文件工具
touch .bash_profile
複製代碼
編輯文件
open -e .bash_profile
複製代碼
在彈出的.bash_profile文件中新增
eval "$(pyenv init -)"
複製代碼
command + s 保存文件,而後在終端中輸入以下命令,刷新以前配置的.bash_profile文件.
source .bash_profile
複製代碼
執行以下命令:
pyenv --help
複製代碼
上面命令行的意思是獲取 prenv 的幫助信息。
上圖是官方文檔中的例子,如下是整理的一些pyenv的經常使用命令,若是想要查看完整命令列表,能夠點擊查看pyenv命令列表
pyenv install --list
複製代碼
pyenv versions
複製代碼
pyenv version
複製代碼
pyenv install 3.5.6
複製代碼
pyenv rehash
複製代碼
pyenv uninstall 3.5.6
複製代碼
pyenv global 3.5.6
//不少人不推薦這麼作,說是mac操做系統的文件也會調用原生的2.7的python版本
//這種說法感受有點:恐懼來自未知的感受.持保留意見
複製代碼
pyenv local 3.5.6
複製代碼
pyenv shell 3.5.6
複製代碼
pyenv install [version]
下載太慢 只須要在python的官網下載你須要的python版本的tar.xz
文件而後放到 /User/.pyenv/cache
中而後再執行pyenv install [version]
就能夠了在這裏提一下:
/.pyenv
在mac中是隱藏文件夾,mac顯示隱藏文件夾的快捷鍵是:shift+command+.
zipimport.ZipImportError: can't decompress data; zlib not available
的問題~ pyenv install 3.5-dev
Cloning https://hg.python.org/cpython...
Installing Python-3.5-dev...
BUILD FAILED (OS X 10.11.6 using python-build 20150818)
Inspect or clean up the working tree at /var/folders/23/4kbs9t712jv1mvmw6cpjwr2m0000gn/T/python-build.20160815000934.22185
Results logged to /var/folders/23/4kbs9t712jv1mvmw6cpjwr2m0000gn/T/python-build.20160815000934.22185.log
Last 10 log lines:
File "/private/var/folders/23/4kbs9t712jv1mvmw6cpjwr2m0000gn/T/python-build.20160815000934.22185/Python-3.5-dev/Lib/ensurepip/__main__.py", line 4, in <module>
ensurepip._main()
File "/private/var/folders/23/4kbs9t712jv1mvmw6cpjwr2m0000gn/T/python-build.20160815000934.22185/Python-3.5-dev/Lib/ensurepip/__init__.py", line 209, in _main
default_pip=args.default_pip,
File "/private/var/folders/23/4kbs9t712jv1mvmw6cpjwr2m0000gn/T/python-build.20160815000934.22185/Python-3.5-dev/Lib/ensurepip/__init__.py", line 116, in bootstrap
_run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
File "/private/var/folders/23/4kbs9t712jv1mvmw6cpjwr2m0000gn/T/python-build.20160815000934.22185/Python-3.5-dev/Lib/ensurepip/__init__.py", line 40, in _run_pip
import pip
zipimport.ZipImportError: can't decompress data; zlib not available make: *** [install] Error 1 複製代碼
解決方案參考#451 用以下命令就能夠解決了:
~ CFLAGS="-I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib" \
pyenv install -v 3.5-dev
複製代碼
pyenv global [verion]
命令失效 這個問題我已經在上面說過了,須要在bash_profile
文件裏面添加一句eval "$(pyenv init -)"
複製代碼
添加方式上面已經詳細介紹過了。
本文參考: