欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python多版本開發環境管理工具介紹

系統 1616 0

前言

在Python開發中,有些情況下,我們可能面臨在一臺機器上同時安裝多版本Python的需求。比如:

有多個Python項目,每個項目依賴不同的Python版本。

有一個Python項目,它需要同時支持多個Python版本。

那么,如何高效地在單臺機器上實現多個版本Python(具體來說,這里Python指的是Python解釋器)的安裝和維護呢?

除此之外,我們還可能面臨在一臺機器上安裝多個版本的某個Python第三方庫的需求。比如:有多個Python項目,每個項目依賴于不同版本的Python第三方庫requests。這時候,如何在單臺機器上實現多版本Python requests庫的安裝和維護呢?

本文介紹一款神器。它提供了最簡潔的方法,讓上述兩種需求同時得到滿足。

多版本Python管理

實現多版本Python管理的工具叫做pyenv。它的安裝命令為:

            
curl https://pyenv.run | bash
          

安裝完成后,需要進行簡單配置。將下面幾行配置信息添加到文件~/.bashrc中,然后執行命令exec "$SHELL",讓配置生效。

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

接著,可以通過查看pyenv版本來檢查安裝和配置是否成功:

            
root@hzettv53:~# pyenv -v
pyenv 1.2.12
          

由于pyenv是基于源代碼進行Python的編譯和安裝的。因此,我們需要先安裝編譯相關的一些依賴包。由于這些依賴是操作系統相關的。因此,不同的操作系統,安裝命令不同。

以常見的Ubuntu/Debian系統為例,安裝命令為:

            
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
          

現在就可以使用pyenv安裝Python了。安裝新版本之前,我們先查看系統當前安裝的Python版本:

            
root@hzettv53:~# pyenv versions
* system (set by /root/.pyenv/version)
root@hzettv53:~# python -V
Python 2.7.12
          

可見,當前使用的是操作系統自帶的Python,其版本為2.7.12。這時,如果我們需要安裝一個新的版本,例如Python 3.7.2, 只需執行命令:

            
pyenv install -v 3.7.2
          

注意,由于pyenv是基于Python源代碼進行編譯安裝,因此這一步驟會有點慢,需要耐心等待。安裝完成后,查看系統中的Python版本:

            
root@hzettv53:~# pyenv versions
* system (set by /root/.pyenv/version)
3.7.2
root@hzettv53:~# python -V
Python 2.7.12
          

可以看到,系統中已經有兩個版本的Python了。但是當前使用的仍然是系統版本。如果想要使用新安裝的版本,只需:

            
root@hzettv53:~# pyenv global 3.7.2
root@hzettv53:~# pyenv versions
system
* 3.7.2 (set by /root/.pyenv/version)
root@hzettv53:~# python -V
Python 3.7.2
          

這里命令pyenv global 3.7.2改變了全局的Python版本。如果只想在當前文件夾中使用Python 3.7.2,那么可以執行:pyenv local 3.7.2;如果只想在當前Shell環境中使用Python 3.7.2,那么可以執行:pyenv shell 3.7.2。

如果同時設置了global, local和shell三種Python版本,那么哪一種會真正生效呢?這里有一個優先級排序,即shell > local > global。舉例來說,如果先后執行了pyenv local 3.7.2和pyenv global 3.7.3,那么由于local的優先級高于global,所以當前生效的Python版本是3.7.2。

這樣,我們便很方便地實現了單一機器上安裝多個版本的Python,并且可以根據實際需要,靈活地切換Python版本。

多虛擬環境管理

不同項目之間,不僅依賴的Python版本可能不同,而且依賴的Python第三方庫的版本也可能不同。我們將項目所依賴的Python及其第三方庫統一稱為虛擬環境。如果同時存在多個Python項目,各自依賴不同的虛擬環境,如何有效管理呢?

這時,我們仍然可以使用pyenv來達成我們的目標。使用下述命令可以創建一個指定Python版本的虛擬環境。

            
pyenv virtualenv 
            
              
            
          

虛擬環境的名稱建議體現Python項目名稱。例如,我們有一個叫做myproject的項目,并且基于Python 3.7.2進行開發,那么可以執行命令:

            
pyenv virtualenv 3.7.2 myprojectenv
          

這樣,我們便創建了一個名為myprojectenv的虛擬環境。那么如何使用它呢?我們在需要使用這個虛擬環境的地方(例如,cd到項目myproject的文件夾路徑),執行以下命令即可:

            
pyenv local myprojectenv
          

這時,我們可以看到,當前使用的Python和pip都指向的是虛擬環境myprojectenv:

            
root@hzettv53:~/workspace/test# pyenv which python
/root/.pyenv/versions/myprojectenv/bin/python
root@hzettv53:~/workspace/test# pyenv which pip
/root/.pyenv/versions/myprojectenv/bin/pip
          

這意味著,我們此時用pip命令安裝的所有Python第三方包,都是安裝到了虛擬環境myprojectenv的路徑下,而不是系統路徑。這樣,我們便實現了Python項目和其所依賴的Python開發環境(即虛擬環境)的綁定。不同的Python項目,完全可以各自使用不同的Python虛擬環境,互不影響。

那么,如果一個Python項目需要使用兩種Python虛擬環境呢?我們只需要創建兩個虛擬環境(例如myprojectenv和myprojectenv2),并且在使用時進行切換即可:

            
root@hzettv53:~/workspace/myproject# pyenv local myprojectenv
root@hzettv53:~/workspace/myproject:~# python -V
Python 3.7.2
root@hzettv53:~/workspace/myproject# pyenv local myprojectenv2
root@hzettv53:~/workspace/myproject:~# python -V
Python 2.7.12
          

總結

開發環境的高效管理是軟件工程中的一個難題,尤其是需要同時維護多個環境的時候。pyenv提供了在單臺機器上實現多版本Python和多類型Python虛擬環境的有效管理。pyenv的使用十分簡單,易于上手。

github地址

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色诱成人免费观看视频 | 日韩中文字幕免费版 | 亚洲日本视频在线 | 久久久不卡网国产精品一区 | 久9久9| 仇爱电视剧泰剧在线观看免费播放 | 久久人人爽人人爽人人片av不 | 国产成人无码AA片免费看 | 成人欧美一区二区三区在线播放 | 亚洲天堂中文字幕 | 毛片免费观看 | 在线一区视频 | 九九re6精品视频在线观看 | 一级毛片免费观看不收费 | 国产三级在线精品男人的天堂 | 青娱乐在线视频观看 | 国产在线资源 | 国产一区二区三区在线免费观看 | 高清videosgratis欧美live | 精品日韩欧美国产一区二区 | 九九视频在线看精品 | 欧美成在人线a免费视频 | 久草福利资源网站免费 | 欧美日韩精品一区二区三区 | 热@国产 | 9191色| 精品欧美一区二区三区 | 99热热精品| 亚洲成人免费 | xnxx18日本 | 亚洲综合激情小说 | 久久综合一区二区三区 | 一本大道久久a久久综合 | 日本不卡在线观看免费v | 日韩视频在线一区二区 | 国产麻豆剧传媒精品好看的片 | 亚洲黄色免费观看 | 蜜桃精品久久久久久久免费影院 | 亚洲精品成人AA片在线播 | 男女配种超爽免费视频 | 一区二区三区国产 |