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