摘要:本文最早發表于個人博客配置環境在工作開發中,一直使用來管理的包環境。很好的解決了不同項目使用不同包的需求。建議路徑為添加環境變量。設置面向程序的本地版本,通過將版本號寫入當前目錄下的文件的方式。若找不到,就用版本。
本文最早發表于個人博客Pylixm"wiki: http://pylixm.cc
配置環境:
CentOS release 6.8
pyenv 20160509
在工作開發中,一直使用 virtualenv 來管理python的包環境。很好的解決了不同項目使用不同python包的需求。對于多python版本的問題如何解決一直無解,雖然可以安裝多個
版本的python,靠絕對路徑或靠創建虛擬環境的時候指定python(virtualenv -p)版本來解決,但總感覺不是那么的優雅。同事推薦了 pyenv ,一直沒用過,特從網上找了些資料試著配置了下,記錄如下。
pyenv vs virtualenvpyenv 是針對 python 版本的管理,通過修改環境變量的方式實現;
virtualenv 是針對python的包的多版本管理,通過將python包安裝到一個模塊來作為python的包虛擬環境,通過切換目錄來實現不同包環境間的切換。
pyenv 原理pyenv 的美好之處在于,它并沒有使用將不同的 $PATH 植入不同的 shell 這種高耦合的工作方式,而是簡單地在 $PATH 的最前面插入了一個墊片路徑(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有對 Python 可執行文件的查找都會首先被這個 shims 路徑截獲,從而架空了后面的系統路徑。
pyenv 安裝使用 自動安裝pyenv 提供了自動安裝的工具,執行命令安裝即可:
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
需保證系統有 git ,否則需要新安裝git工具。
手動安裝將 pyenv 檢出到你想安裝的目錄。建議路徑為:$HOME/.pyenv
$ cd $ git clone git://github.com/yyuu/pyenv.git .pyenv
添加環境變量。PYENV_ROOT 指向 pyenv 檢出的根目錄,并向 $PATH 添加 $PYENV_ROOT/bin 以提供訪問 pyenv 這條命令的路徑
$ echo "export PYENV_ROOT="$HOME/.pyenv"" >> ~/.bash_profile $ echo "export PATH="$PYENV_ROOT/bin:$PATH"" >> ~/.bash_profile
這里的 shell 配置文件(~/.bash_profile)依不同 Linux 而需作修改——Zsh:~/.zshenv;Ubuntu:~/.bashrc
向 shell 添加 pyenv init 以啟用 shims 和命令補完功能
$ echo "eval "$(pyenv init -)"" >> ~/.bash_profile
配置文件的位置同上一條一樣需要修改
重啟 shell(因為修改了 $PATH)
$ exec $SHELLpyenv 常用命令 python配置
$ pyenv versions -- 查看系統當前安裝的python列表
$ pyenv install -v 3.5.1 -- 安裝python
$ pyenv uninstall 2.7.3 -- 卸載python
$ pyenv rehash -- 創建墊片路徑(為所有已安裝的可執行文件創建 shims,如:~/.pyenv/versions/*/bin/*,因此,每當你增刪了 Python 版本或帶有可執行文件的包(如 pip)以后,都應該執行一次本命令)
python切換$ pyenv global 3.4.0 -- 設置全局的 Python 版本,通過將版本號寫入 ~/.pyenv/version 文件的方式。
$ pyenv local 2.7.3 -- 設置面向程序的本地版本,通過將版本號寫入當前目錄下的 .python-version 文件的方式。通過這種方式設置的 Python 版本優先級較 global 高。
pyenv 會從當前目錄開始向上逐級查找 .python-version 文件,直到根目錄為止。若找不到,就用 global 版本。
$ pyenv shell pypy-2.2.1 -- 設置面向 shell 的 Python 版本,通過設置當前 shell 的 PYENV_VERSION 環境變量的方式。這個版本的優先級比 local 和 global 都要高。--unset 參數可以用于取消當前 shell 設定的版本。
$ pyenv shell --unset
python優先級shell > local > global
pyenv 插件: pyenv-virtualenv 安裝使用自動安裝pyenv 后,它會自動安裝部分插件,通過pyenv-virtualenv 插件可以很好的和 virtualenv 結合:
[root@linux3311 ~]# cd .pyenv/plugins/ [root@linux3311 plugins]# ll insgesamt 24 drwxr-xr-x. 4 root root 4096 19. Jun 05:17 pyenv-doctor drwxr-xr-x. 5 root root 4096 19. Jun 05:18 pyenv-installer drwxr-xr-x. 4 root root 4096 19. Jun 05:18 pyenv-update drwxr-xr-x. 7 root root 4096 19. Jun 05:18 pyenv-virtualenv drwxr-xr-x. 4 root root 4096 19. Jun 05:18 pyenv-which-ext drwxr-xr-x. 5 root root 4096 19. Jun 05:17 python-build使用
創建虛擬環境 $ pyenv virtualenv 2.7.10 my-virtual-env-2.7.10
若不指定python 版本,會匯報認使用當前環境python版本。
列出當前虛擬環境 pyenv virtualenvs
激活虛擬環境 pyenv activate
退出虛擬環境 pyenv deactivate
刪除虛擬環境 pyenv uninstall my-virtual-env
使用pyenv 來管理python,使用 pyenv-virtualenv 插件來管理多版本 python包。
此時,還需注意,當我們將項目運行的 env 環境部署到生產環境時,由于我們的python 包是依賴python 的,需要注意生產環境的python版本問題(詳見 這里)。
以上為個人拙見,歡迎小伙伴們留言交流。小伙伴們若有更好的python 多版本環境管理方案,希望留言不吝賜教,在此,先謝過了!
參考pyenv 下載地址 這里
virtualenv 中文文檔地址 這里
http://my.oschina.net/lionets/blog/267469
https://github.com/yyuu/pyenv-virtualenv
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38044.html
摘要:為了安裝科學計算環境,控制好版本,今天上午總算折騰好了。切換和使用新的虛擬環境這樣就能切換為這個版本的虛擬環境。通過輸入查看現在版本,可以發現處于虛擬環境下了。指定包的版本多個版本并存,尤其是和的并存。下面用創建一個名叫的版本為的環境。 為了安裝Anaconda科學計算環境,控制好python版本,今天上午總算折騰好了。 學習python有時希望在python2.7環境下,有時希望在...
摘要:讓我們探討以下用例如果您使用單個版本的如版本,并且想要管理不同的虛擬環境,那么就是您所需要的。如果你想使用多個版本的,不管是否有虛擬環境,那么請使用。和使用時,我們現在知道如何在不同版本的之間安裝和切換,以及如何創建新的虛擬環境。 showImg(https://segmentfault.com/img/remote/1460000019127686?w=800&h=428); 多個...
摘要:可通過以下命令生成文件運行虛擬環境可使用以下命令來運行項目或者啟動虛擬環境的環境直接運行并不會出現命令行,是應為沒有配置環境變量。 本文最早發布與個人博客:http://www.pylixm.cc 最近常看到pipenv這個管理工具,今天有時間查了下,是 Kennethreitz 大神的作品,看了下github的倉庫,是2017年1月份創建的,僅僅一年的時間變獲得了7k+的收藏,最新一...
摘要:虛擬環境非常有用,因為它可以防止系統出現包管理混亂和版本沖突的問題。為每個應用程序創建一個虛擬環境可以確保應用程序只能訪問它們自己使用的包,從而全局解釋器只作為一個源且依然整潔干凈去更多的虛擬環境。另一個好處是,虛擬環境不需要管理員權限。 https://www.jianshu.com/p/08c... virtualenv 虛擬環境是在Python解釋器上的一個私有復制,你可以在一個...
摘要:聲明環境下安裝執行以下文本放到里面重啟控制臺加速搜狐鏡像源加速下載需要的版本放到文件夾下面然后執行版本號安裝對應的版本傻瓜式腳本如下,其中表示要下載的版本號執行系統當前如圖所示創建虛擬環境現在建議使用管理虛擬環境,使用安裝版本 聲明 ubuntu環境下 安裝 執行 sudo curl -L https://raw.githubusercontent.com/yyuu/pyenv-ins...
閱讀 3684·2021-08-10 09:42
閱讀 584·2019-08-30 15:55
閱讀 880·2019-08-30 15:54
閱讀 3104·2019-08-30 13:45
閱讀 549·2019-08-29 16:23
閱讀 1986·2019-08-29 16:23
閱讀 976·2019-08-29 15:18
閱讀 2255·2019-08-29 12:57