離線環(huán)境安裝python第三方庫
0. 概述
這個方法是使用pip換本地源下載依賴庫的方式執(zhí)行的,分為以下幾個步驟
1. 安裝/更新pip到最新版本橘霎。
2. 在聯(lián)網(wǎng)環(huán)境下載依賴庫的包和建立requirement.txt。
3. 將上一步驟的包和文件上傳到離線環(huán)境姐叁,使用命令安裝。
4. 測試安裝是否成功外潜。
1. 安裝/更新pip到最新版本
pip的各種安裝方式總結(jié)需要一個單獨的文件來記錄(挖坑標簽1),此次只說明離線安裝方式嘱吗。
1.1 在聯(lián)網(wǎng)環(huán)境上下載三個文件:
pip?9.0.1?py2.py3?none?any.whl
wheel?0.29.0?py2.py3?none?any.whl
下載鏈接為Unofficial Windows Binaries for Python Extension Packages
在該頁中使用ctrl+F搜索pip/wheel/get-pip即可下載滔驾。
get-pip.py
1.2 將以上三個文件上傳到內(nèi)網(wǎng)環(huán)境中
將pip和wheel文件放入c:\python27\packages目錄下(這個目錄為個人離線源俄讹,日后的離線庫可以均放置在該目錄下绕德,路徑可按個人環(huán)境更改)
1.3 在cmd中使用命令進行安裝pip
python.exe get-pip.py --no-index --find-links=d:\python27\packages
1.4 使用pip -V驗證安裝是否成功
若回顯pip 9.0.1 from c:\python27\lib\site-packages (python 2.7)則安裝成功。
1.5 加入環(huán)境變量
為了方便后續(xù)使用耻蛇,將pip所在文件路徑C:\Python27\Scripts加入到系統(tǒng)環(huán)境變量Path中。
2. 在聯(lián)網(wǎng)環(huán)境下載依賴庫
1. 先在聯(lián)網(wǎng)環(huán)境上下載所需要的庫
pip install influxdb-python
2. 打包已安裝的包
在C:Python27目錄下新建packages文件夾用來存儲下載下來的所需安裝包延曙。
pip list #查看安裝的包
pip freeze >requirements.txt
pip install --download C:\Python27\packages -r requirements.txt
在執(zhí)行download之前還可以編輯requirements.txt亡哄,只保留本次安裝所需要的依賴庫布疙。
3. 離線情況安裝打包好的包
將packages文件夾和requirement.txt拷貝至離線機器上目錄下,packages文件夾放在C:Python27下灵临。requirements.txt放在執(zhí)行路徑下(pip.exe所在路徑,若已添加環(huán)境變量則可隨意放置)
使用命令安裝依賴文件
pip install --no-index --find-links=c:\Python27\packages -r requirements.txt
4. 測試安裝是否成功
在cmd下進入python環(huán)境儒溉,輸入import influxdb,沒有報錯即安裝成功波闹。
5. 遇到的坑
原文中的安裝命令中使用的是 find-index涛碑,但是執(zhí)行失敗,提示沒有該選項蒲障。后使用pip install -h查詢選項幫助,發(fā)現(xiàn)是 find-links
pip 沒有放在環(huán)境變量中庄撮,導致在桌面執(zhí)行命令時失敗,為了防止麻煩重窟,添加系統(tǒng)環(huán)境變量惧财。
在離線環(huán)境中安裝失敗扭仁,找不到符合預期的版本厅翔,但是文件夾中有該源乖坠。使用 pip install xx.whl發(fā)現(xiàn)提示該平臺不支持。處理方法:改名熊泵。在 shell 中輸入 import pip; print(pip.pep425tags.get_supported()) 可以獲取到 pip 支持的文件名還有版本甸昏,將文件命名改為支持類型。
按照上一步遇到的坑的解決方案施蜜,在實際編碼中出現(xiàn) DLL load failed: %1 is not a valid Win32 application.錯誤。事實證明只解決表面問題是完全不可以的缸沃,要追根溯源修械。因聯(lián)網(wǎng)電腦是 python64bit 的趾牧,而離線電腦是 python32bit 的肯污,導致在聯(lián)網(wǎng)電腦中下載的64位庫無法正常使用,為了以后方便哄芜,將聯(lián)網(wǎng)電腦的 python 重新安裝成 32 位的剂桥。(考慮 32 有更好的兼容性,不更換內(nèi)網(wǎng)版本為 64权逗。)并重新下載個人離線源上傳到內(nèi)網(wǎng)。
6. 參考文檔
斷網(wǎng)環(huán)境下利用pip安裝Python離線安裝包
pip安裝報錯:is not a supported wheel on this platform
Solving "DLL load failed: %1 is not a valid Win32 application." for Pygame