python使用pip離線安裝庫


一、前言及環境

1. 場景及整體思路

最近在做一個AI智能項目,開發過程中用自己的機子安裝了很多庫,開發完之后需要部署到公司內網的環境中,但是客戶那邊的環境是不能聯網的,於是就需要離線進行庫的安裝。

上網搜了一下,大概思路是:

  1. 從可以聯網電腦導出庫的名稱到文件;
  2. 下載指定庫到指定文件夾;
  3. 將庫名稱文件和安裝包拷貝到離線環境進行安裝

整體流程如下圖所示:

整個流程主要使用到庫管理工具pip,我用的是python安裝完已經存在的pip,沒有pip的可自行安裝。

2. 環境

  • macosx 14.1
  • python 3.7.2

注意:后面發現很多問題都是pip版本太低造成的,所以在往下做之前,可以先升級一下pip為最新版本:

python -m pip install -U pip

二、聯網下載庫

1. 導出庫信息

pip freeze > requirements.txt

這個命令是將已經通過pip安裝的包的名稱記錄到requirements.txt文件中。

導出這個文件后,編輯文件,留下你需要的庫,其他刪除。

2. 下載庫安裝包

  • 下載到當前目錄下的dist目錄,你可以選擇更換目錄
pip download ./dist -r requirements.txt

也可以直接進入目標文件夾然后執行:

pip download -r requirements.txt

requirements.txt中列出來的庫下載到packages文件夾。

這里要注意,因為我的pip版本比較新,所以用的download,據說老一點的版本應該是install --download:

pip install --download ./packages -r requirements.txt

注意:如果requirements.txt里面存在不能通過pip安裝的庫,下載過程會報錯。

三、離線安裝庫

1. 進行安裝

requirements.txtpackages文件夾拷貝到需要離線安裝的服務器,
通過以下命令進行安裝:

pip install --no-index --find-links=./dist -r requirements.txt

根據pip版本不同,里面的參數有可能是--find-link

2. 安裝問題

  1. 使用MacOsx系統下載的離線安裝包,在CentOS7上無法正常安裝,觀察下包名,發現依賴包應該是單獨給Macosx定制的。

    建議大家需要在指定操作系統部署,先在同樣的操作系統下進行download依賴包,這樣可以避免這個問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM