python依賴庫管理及遷移

2021-08-30 17:32:04 字數 1486 閱讀 8721

python的包特別多,這為我們帶來了方便也造成了不變,主要問題如下:

開發環境遷移時,我們要將所有現有安裝包再在新的機器上安裝一遍;

已安裝包在後續更新時變動較大,可能會影響現有**。希望可以在不同環境下執行。

目前有三種 python 依賴包管理方式:

conda,相信大家對anaconda並不陌生;

pip,管理第三方庫;

docker,容器化是現在非常火的乙個方案。docker容器崩潰也不會影響主機,而且環境映象可移植性非常強,能非常方便地把環境移植到不同的主機上去而不需要重新配置安裝。(這裡先挖個坑,等新東大神傳授之後再來補充)

virtualenv是乙個針對python建立定製的虛擬環境的工具,可以在虛擬環境中指定python版本並使用pip安裝到啟用的虛擬環境中;

把自己的環境打包帶走,需要注意的是 conda 環境需要完全一致。

比如我在本地中建了乙個python2.7的虛擬環境,位址在

/users/shang/anaconda3/envs/py27
可以看一下bin/pip檔案中是什麼

#!/users/shang/anaconda3/envs/py27/bin/python

# -*- coding: utf-8 -*-

import re

import sys

from pip._internal import main

if __name__ ==

'__main__'

: sys.argv[0]

= re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]

) sys.exit(main(

))

注意到第一行,是指定了python路徑的,而且是絕對路徑,如果在伺服器之間做環境遷移,應該是可以做到保證路徑相同的,比如都是

/home/work/software/anaconda3/envs/py27/bin/python
這個方法表較使用簡單,就是先知道原來安裝了什麼包,再在新環境安裝一遍。這樣也是好的,總比執行一遍.py檔案報個錯安個包的方法好==

pip freeze > requirements.txt  #獲得依賴包

pip install -r requirements.txt #安裝依賴包

注意:pip freeze輸出的是本地環境中所有三方包資訊,但是會比pip list少幾個包,因為pip,wheel,setuptools等包,是自帶的而無法(un)install的,如果要顯示所有包可以加上引數-all,即pip freeze -all

待續

Python依賴管理及打包工具Poetry使用規範

目錄 可以以各種形式指定專案的依賴項,取決於依賴項的型別以及安裝專案可能需要的可選約束 約束 編寫規範 允許的版本範圍 1.2.3 1.2.3 2.0.0 1.2 1.2.0 2.0.0 1 1.0.0 2.0.0 0.2.3 0.2.3 0www.cppcns.com.3.0 0.0.3 0.0....

python依賴包linux整體遷移方法

1.新建site packages目錄,進入到site packages目錄下 2.在site packages目錄下執行pip freeze requirements.txt 3.檢視requirements.txt,可以看到當前機器的python所有依賴包已生成列表 4.在當前目錄下執行pip ...

使用CocoaPods管理依賴庫

什麼是cocoapods?摘錄自 cocoapods是由eloyduran於2011年8月12日建立。另乙個早先的決定就是利用central git repository作為所有庫的總資料庫。雖然這帶來了一些運籌上的顧慮,好在github能夠提供乙個穩健的平台,幫助團隊在後續的迭代中,開發出更好的工...