九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Linux 下的 Python 多版本管理(pyenv)

簡介

提到 Python 環(huán)境管理,更多人可能會首先想到 virtualenv。但與用于創(chuàng)建獨(dú)立包環(huán)境的 virtualenv 不同,pyenv 的作用僅限于維護(hù)不同版本的 Python。它的使用不依賴于 Python,是一個簡單、獨(dú)立的純 shell 腳本工具。pyenv 也以 pyenv-virtualenv 插件的形式支持 virtualenv,用戶可以按需選擇是否使用,本文將不對此插件進(jìn)行討論。

關(guān)于適用平臺的問題,pyenv 是支持 OSX 等類 Unix 操作系統(tǒng)的,標(biāo)題只提了 Linux 是因?yàn)槲覜]有 MAC。。。

需求


出于種種原因,很多人的電腦上會同時安裝很多個版本的 Python,比如會有 2.7 + 3.4。一般在 windows 下我們都可以通過使用絕對路徑的方式來繞過系統(tǒng)對 PATH 環(huán)境變量的查詢;在 Linux 下除了這種方式外,還可以在腳本文件開頭顯示指定需要使用的解釋器,就像這樣:#!/usr/bin/env python2.7#!usr/bin/env python3.4。一旦特定版本的解釋器被打開后,就不用再擔(dān)心 PATH 的問題了。

就是有點(diǎn)麻煩。所以為了能讓用戶隨心所欲地使用不同版本的諸如 python、pip、django-admin.py 這樣的命令,本篇的主題,pyenv 就被開發(fā)出來了。pyenv 在安裝和配置完畢后可以實(shí)現(xiàn):一鍵(命令)切換全局、本地或當(dāng)前 shell 使用的 Python 版本。

原理


pyenv 的美好之處在于,他并沒有使用將不同的 $PATH 植入不同的 shell 這種高耦合的工作方式,而是簡單地在 $PATH 的最前面插入了一個墊片路徑(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有對 Python 可執(zhí)行文件的查找都會首先被這個 shims 路徑截獲,從而架空了后面的系統(tǒng)路徑。

安裝

pyenv 的 github 頁面 提供了完整的安裝與使用指導(dǎo),所以本文基本上就是對 Readme 的翻譯和解釋。

軟件依賴


Linux 下安裝 pyenv 前需要做一些準(zhǔn)備工作,詳情參考 Requirements 頁面。例如 UP 使用的 Ubuntu 系統(tǒng)就需要先執(zhí)行如下命令:sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm

自動安裝


作者很親切地提供了一個自動安裝工具:

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

如果想自己手動安裝并進(jìn)行配置的話,可參考下面的步驟。

Github 檢出


  1. 將 pyenv 檢出到你想安裝的目錄。建議路徑為:$HOME/.pyenv

    1
    2
    $ cd
    $ git clone git://github.com/yyuu/pyenv.git .pyenv


  2. 添加環(huán)境變量。PYENV_ROOT 指向 pyenv 檢出的根目錄,并向 $PATH 添加 $PYENV_ROOT/bin 以提供訪問 pyenv 這條命令的路徑

    1
    2
    $ 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

  3. 向 shell 添加 pyenv init 以啟用 shims 和命令補(bǔ)完功能

    1
    $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    配置文件的位置同上一條一樣需要修改

  4. 重啟 shell(因?yàn)樾薷牧?$PATH

    1
    $ exec $SHELL


使用

pyenv 總共也就 11 條不同的命令,詳情可參見:Command Reference。下面就最重要的幾(8)條進(jìn)行說明:

pyenv versions


查看當(dāng)前 pyenv 可檢測到的所有版本,處于激活狀態(tài)的版本前以 * 標(biāo)示。

1
2
3
4
5
6
7
$ pyenv versions
 2.5.6
 2.6.8
*2.7.6 (set by /home/yyuu/.pyenv/version)
 3.3.3
 jython-2.5.3
 pypy-2.2.1


pyenv version


查看當(dāng)前處于激活狀態(tài)的版本,括號中內(nèi)容表示這個版本是由哪條途徑激活的(global、local、shell)

1
2
$ pyenv version
2.7.6 (set by /home/yyuu/.pyenv/version)


pyenv install


使用 python-build(一個插件) 安裝一個 Python 版本,到 $PYENV_ROOT/versions 路徑下。

1
$ pyenv install -v 2.7.3

建議添加 -v 參數(shù)用于顯示細(xì)節(jié)。python-build 會首先嘗試從一個鏡像站點(diǎn)下載包,此時可以去 /tmp/python-build.xxx 里面關(guān)心一下下載速度。如果太慢,可以直接在 shell 里 ctrl-c 終止此次下載,然后 python-build 會自動去 python.org/ftp 下載。不一定哪個更快。

pyenv uninstall


卸載一個版本

1
$ pyenv uninstall 2.7.3


pyenv rehash


為所有已安裝的可執(zhí)行文件 (如:~/.pyenv/versions/*/bin/*) 創(chuàng)建 shims,因此,每當(dāng)你增刪了 Python 版本或帶有可執(zhí)行文件的包(如 pip)以后,都應(yīng)該執(zhí)行一次本命令

1
2
$ pyenv install 2.7.3
$ pyenv rehash


pyenv global


設(shè)置全局的 Python 版本,通過將版本號寫入 ~/.pyenv/version 文件的方式。

1
$ pyenv global 3.4.0


pyenv local


設(shè)置面向程序的本地版本,通過將版本號寫入當(dāng)前目錄下的 .python-version 文件的方式。通過這種方式設(shè)置的 Python 版本優(yōu)先級較 global 高。pyenv 會從當(dāng)前目錄開始向上逐級查找 .python-version 文件,直到根目錄為止。若找不到,就用 global 版本。

1
$ pyenv local 2.7.3


pyenv shell


設(shè)置面向 shell 的 Python 版本,通過設(shè)置當(dāng)前 shell 的 PYENV_VERSION 環(huán)境變量的方式。這個版本的優(yōu)先級比 local 和 global 都要高。--unset 參數(shù)可以用于取消當(dāng)前 shell 設(shè)定的版本。

1
2
$ pyenv shell pypy-2.2.1
$ pyenv shell --unset

吐一句:OSC 對 Markdown 的著色處理感覺不如 github 上的灰度來得干凈啊,本文我已經(jīng)盡力了~

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用pyenv實(shí)現(xiàn)python多版本共存
Ubuntu下安裝pyenv實(shí)現(xiàn)Python多版本共存
Python多版本管理
Python 虛擬環(huán)境 | zrong's blog
一年時間,Pipenv就成為Python官方推薦的頂級工具?
python多版本管理器pyenv
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服