天天看點

Python程式設計:pyenv管理多個python版本環境mac系統安裝其他系統安裝Linux環境下安裝pyenv

pyenv 多版本的Python管理工具 https://github.com/pyenv/pyenv pyenv-virtualenv 虛拟環境管理工具 https://github.com/pyenv/pyenv-virtualenv

mac系統安裝

$ brew install pyenv
$ brew install pyenv-virtualenv      

配置環境變量

$ vim ~/.bash_profile      

寫入内容

# pyenv
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"      

配置生效

$ source ~/.bash_profile      

其他系統安裝

# 安裝
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

# 解除安裝
$ rm -fr ~/.pyenv      

配置vim ~/.bashrc

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"      

參考:

https://github.com/pyenv/pyenv-installer

使用

常用指令

pyenv install --list # 列出可安裝版本
pyenv install <version> # 安裝對應版本
pyenv install -v <version> # 安裝對應版本,若發生錯誤,可以顯示詳細的錯誤資訊

pyenv uninstall <version> # 解除安裝對應版本

pyenv versions # 顯示目前使用的python版本
pyenv which python # 顯示目前python安裝路徑
pyenv global <version> # 設定預設Python版本
pyenv local <version> # 目前路徑建立一個.python-version, 以後進入這個目錄自動切換為該版本
pyenv shell <version> # 目前shell的session中啟用某版本,
# 優先級: shell > local > global
      

虛拟環境管理

pyenv virtualenvs # 列出目前虛拟環境

pyenv virtualenv env # 從預設版本建立虛拟環境
pyenv virtualenv 3.6.4 env-3.6.4 # 建立3.6.4版本的虛拟環境

pyenv activate env-3.6.4 # 激活 env-3.6.4 這個虛拟環境
pyenv deactivate # 停用目前的虛拟環境

pyenv uninstall env-3.6.4 # 删除 env-3.6.4 這個虛拟環境
      

相比這個,我還是比較喜歡virtualenvwrapper的指令

workon py3      

當然可以修改别名

$ vim ~/.bash_profile

# 會出現過時提示
# alias workon="pyenv activate"

alias workon="pyenv shell"      

.python-version檔案

目錄中有.python-version檔案,進入目錄後會自動切換到對應的Python版本

$ python --version
Python 2.7.16

$ cd /demo

# 建立 .python-version檔案
$ pyenv lolcal py370

$ ls
.python-version

$ cat .python-version
py370

$ python --version
Python 3.7.0      

參考

pyenv 安裝及常用指令

pyenv下載下傳速度慢

手動下載下傳安裝包

https://npm.taobao.org/mirrors/python/

放到目錄下, 沒有就建立

~/.pyenv/cache      

遇到的問題

1、切換環境的時候會提示:

$ pyenv activate py370

prompt changing will be removed from future release. 
configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.      

如果按照提示配置,切換版本後,沒有了版本提示,不知道自己處于什麼版本

修改配置檔案~/.bash_profile

$ vim ~/.bash_profile

# pyenv
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
export PYENV_VIRTUALENV_DISABLE_PROMPT=1

# 添加版本号提示
export PS1='($(pyenv version-name)) '$PS1
      

可是這樣會導緻PyCharm指令行多一個版本提示,無法忍受

(py370)(py370) $      

還有一個辦法是使用

$ pyenv shell py370      

Linux環境下安裝pyenv

安裝pyenv

1、設定安裝目錄

安裝目錄預設是PYENV_ROOT=${HOME}/.pyenv,如果需要多使用者使用,那麼會遇到一些權限問題

自定義安裝目錄,讓所有使用者都能用:

$ vim /etc/profile.d/custom.sh

# 設定目錄 
export PYENV_ROOT=/usr/local/pyenv      

2、設定pyenv及其插件下載下傳源

如果直接使用官網給出的下載下傳方式,預設直接從github下載下傳安裝, 會非常慢

$ curl https://pyenv.run | bash

# 或者
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash      

可以自動同步到gitee,并修改下載下傳位址

(1)先手動下載下傳安裝檔案

$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer > pyenv-installer.sh      

(2)修改下載下傳源

if [ -n "${USE_GIT_URI}" ]; then
#   GITHUB="git://github.com"
  GITHUB="git://gitee.com"
else
#   GITHUB="https://github.com"
  GITHUB="https://gitee.com/"
fi

# [github]pyenv -> [gitee]mouday
checkout "${GITHUB}/mouday/pyenv.git"            "${PYENV_ROOT}"
checkout "${GITHUB}/mouday/pyenv-doctor.git"     "${PYENV_ROOT}/plugins/pyenv-doctor"
checkout "${GITHUB}/mouday/pyenv-installer.git"  "${PYENV_ROOT}/plugins/pyenv-installer"
checkout "${GITHUB}/mouday/pyenv-update.git"     "${PYENV_ROOT}/plugins/pyenv-update"
checkout "${GITHUB}/mouday/pyenv-virtualenv.git" "${PYENV_ROOT}/plugins/pyenv-virtualenv"
checkout "${GITHUB}/mouday/pyenv-which-ext.git"  "${PYENV_ROOT}/plugins/pyenv-which-ext"
      

(3)執行安裝指令

$ bash pyenv-installer.sh      

或者直接使用已修改好的版本,通過

gt

工具進行下載下傳

# 直接下載下傳安裝
$ wget https://raw.githubusercontent.com/mouday/gt-project/main/templates/template-pyenv-installer.sh | bash

# 或者使用 gt
$ gt pyenv-installer.sh | bash
      

安裝Python

預設是從Python官網下載下傳,如果速度慢可以修改下載下傳源

更多變量可參考:

python-build
$ vim /etc/profile.d/custom.sh

export PYTHON_BUILD_MIRROR_URL=https://npm.taobao.org/mirrors/python      

或者,先手動下載下傳到緩存檔案夾中再安裝

$ cd /usr/local/pyenv/cache

$ wget https://npm.taobao.org/mirrors/python/3.7.0/Python-3.7.0.tar.xz
      

安裝Python和建立虛拟環境

# 安裝
$ pyenv install 3.7.0

# 建立虛拟環境
$ pyenv virtualenv 3.7.0 py370