国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

pyenv命令管理多個Python版本

2020-02-23 04:31:01
字體:
來源:轉載
供稿:網友

從接觸Python以來,一直都是采用 virtualenv 和 virtualenvwrapper 來管理不同項目的依賴環境,通過 workon 、 mkvirtualenv 等命令進行虛擬環境切換,很是愉快。

然而,最近想讓項目能兼容更多的Python版本,例如至少同時兼容 Python2.7 和 Python3.3+ ,就發現采用之前的方式行不通了。

最大的問題在于,在本地計算機同時安裝 Python2.7 和 Python3 后,即使分別針對兩個Python版本安裝了 virtualenv 和 virtualenvwrapper ,也無法讓兩個Python版本的 workon 、 mkvirtualenv 命令同時生效。另外一方面,要想在本地計算機安裝多個Python版本,會發現安裝的成本都比較高,實現方式也不夠優雅。

幸運地是,針對該痛點,已經存在一個比較成熟的方案,那就是 pyenv 。

如下是官方的介紹。

pyenv lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.This project was forked from rbenv and ruby-build , and modified for Python.

本文就針對 pyenv 最核心的功能進行介紹。

基本原理

如果要講解 pyenv 的工作原理,基本上采用一句話就可以概括,那就是:修改系統環境變量 PATH 。

對于系統環境變量 PATH ,相信大家都不陌生,里面包含了一串由冒號分隔的路徑,例如 /usr/local/bin:/usr/bin:/bin 。每當在系統中執行一個命令時,例如 python 或 pip ,操作系統就會在 PATH 的所有路徑中從左至右依次尋找對應的命令。因為是依次尋找,因此排在左邊的路徑具有更高的優先級。

而 pyenv 做的,就是在 PATH 最前面插入一個 $(pyenv root)/shims 目錄。這樣, pyenv 就可以通過控制 shims 目錄中的Python版本號,來靈活地切換至我們所需的Python版本。

如果還想了解更多細節,可以查看 pyenv 的文檔介紹及其源碼實現。

環境初始化

pyenv 的安裝方式包括多種,重點推薦采用 pyenv-installer 的方式,原因主要有兩點:

通過 pyenv-installer 可一鍵安裝 pyenv 全家桶,后續也可以很方便地實現一鍵升級;
pyenv-installer 的安裝方式基于 GitHub ,可保證總是使用到最新版本的 pyenv ,并且 Python 版本庫也是最新最全的。
install && config

通過如下命令安裝 pyenv 全家桶。

$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

內容除了包含 pyenv 以外,還包含如下插件:

    pyenv-doctor pyenv-installer pyenv-update pyenv-virtualenv pyenv-which-ext

安裝完成后, pyenv 命令還沒有加進系統的環境變量,需要將如下內容加到 ~/.zshrc 中,然后執行 source ~/.zshrc 。

export PATH=$HOME/.pyenv/bin:$PATHeval "$(pyenv init -)"eval "$(pyenv virtualenv-init -)"            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长阳| 海丰县| 青冈县| 商洛市| 五家渠市| 威信县| 怀仁县| 汪清县| 兰考县| 皋兰县| 沁源县| 黔南| 西青区| 浮梁县| 绍兴县| 南皮县| 杭锦后旗| 鲜城| 儋州市| 芮城县| 屏东市| 普格县| 安图县| 塔河县| 东乡县| 兰州市| 望谟县| 罗平县| 昌宁县| 罗城| 泗阳县| 虎林市| 绥棱县| 杂多县| 綦江县| 长治县| 蓬溪县| 镇安县| 巴青县| 五原县| 呼和浩特市|