文章目錄
- 專案場景
- 解決方案
- 第一步:先正常安裝
- 1.先查看都有哪些庫
- 2.根據提示,先升級一下 pip
- 3.開始安裝,這里拿 pyautogui 來試驗
- 第二步:下載并安裝離線包
- 1.上 [PyPi](https://pypi.org/) 搜 相關 離線包
- 2.選擇版本
- 3.下載所有需要的包,并 pip 安裝
- 4.解決疑難雜癥
- 4.1 先將這兩個庫分別解壓
- 4.2 使用 setup.py 安裝
- 5.見證奇跡的時刻
- 小結
- 統一宣告
專案場景
銀行專案,出于安全性考慮,無法連接外網; 平常安裝 python 第三方庫,直接 pip install xxx 即可,一般的包會自動連帶安裝好相關依賴包,但在這里行不通……解決方案
怎么辦呢?
打住……上錯表情包了

還能怎么辦,干就完了,離線安裝!!!
第一步:先正常安裝
由于我環境上之前就有裝 python,所以為了試驗,這里安裝另一個新的 python,如何在同一臺電腦上安裝不同版本的python并可以正常運行呢?其實直接安裝即可,安裝之后再重命名一下 python.exe
比如:修改 python.exe 為 python36.exe,效果如下圖:

原理和環境變數有關,環境變數里的第一個指向 python.exe 的會被執行,其他的python.exe 都不會被運行,重命名后,就是第一個指向 python3.6.exe 或者 別的 pythonx.x.exe 了,就會被執行

言歸正傳,現在使用 python36.exe 來安裝
1.先查看都有哪些庫
python36 -m pip list

2.根據提示,先升級一下 pip
python36 -m pip install --upgrade pip

3.開始安裝,這里拿 pyautogui 來試驗
python36 -m pip install pyautogui

可以看到,裝了一堆其他的庫啊……
再查看現在都有哪些庫

.啊……這……還好,也沒有很多“隱藏的”依賴庫

這時候把庫匯出來到 wtf.txt 里……當然,規范來講是 requirements.txt ……可這是在線安裝才需要匯出來,我這匯出來有 *** 的 ** 用……
python36 -m pip freeze >> requirement.txt

那……一個個下載吧(有時間有能耐的可以寫個爬蟲,我這就不試了,別問,問就是不會)

第二步:下載并安裝離線包
1.上 PyPi 搜 相關 離線包

2.選擇版本
版本的選擇,首先要根據上面 pip list 指定的版本去選,如果 Download files 里頭沒有相關的版本,則去 Release history 里找,里面是歷史版本

版本如何看呢?
比如:
Pillow-8.3.1-1-cp36-cp36m-win_amd64.whl (3.2 MB) 以及
Pillow-8.3.1-cp36-cp36m-win32.whl (2.8 MB)
Pillow-X.x.x-x 版本號
cp36 —> 適用于 python 3.6.x,大多數解釋器都是 cpython,一般說的 python 也是指 cpython
amd64 —> 適用于 64 位作業系統
win32 —> 適用于 32 位作業系統
另外,還有類似 pyflakes-2.3.1-py2.py3-none-any.whl (68.8 kB) 的
py2.py3-none-any —> 適用于 python2.x 以及 python3.x;適用于 32/64 位作業系統,也不限制 windows 還是 linux 等,就是 any,無限制,下這個就對了!
可以看到這里只有一個,即類似 PyAutoGUI-0.9.53.tar.gz (59.0 kB) 的,是 tar.gz 包,具體 和 whl 包的差異沒仔細看,但我離線安裝方式一樣,簡單地說,對我而言沒區別~但我個人更傾向于 whl 包
3.下載所有需要的包,并 pip 安裝
根據剛剛的 pip list ,逐個下載(還別說,可能找個現成的爬蟲會來得更快……)

可以看到,這里還有 zip 的,那先拿它來試試(我這里試驗的時候需要卸載python36,再安裝python36,確保一切都是最開始的樣子,再斷網,用這些第三方庫離線包來安裝……)
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyTweening-1.0.3.zip

先嘗試安裝,再根據提示,把需要做的補好,比如這里,PyTweening-1.0.3.zip 裝不上,因為 pip 版本不夠高,提示是在線升級 pip 的方法,咱這使用 離線安裝升級 pip 的方法
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\pip-21.2.4-py3-none-any.whl
安裝升級好 pip 后,再安裝 PyTweening,發現 .zip 或者 .tar.gz 或者 .whl,命令格式都是一樣的,都是類似
python -m pip install XXX_abs_path.xxx.whl
那真的要一個個慢慢裝嗎?是,但也不是!因為你不知道安裝順序,不知道需要重復多少次才能真正安裝好,所以偷個懶,寫個小代碼
import os
dir_path = r'C:\Users\big_c\Desktop\test_20210813'
for file in os.listdir(dir_path):
print(f'python36 -m pip install {os.path.join(dir_path, file)}')
r""" 運行效果:
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\MouseInfo-0.1.3.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\Pillow-8.3.1-1-cp36-cp36m-win_amd64.whl
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\pip-21.2.4-py3-none-any.whl
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyAutoGUI-0.9.53.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyGetWindow-0.0.9.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyMsgBox-1.0.9.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\pyperclip-1.8.2.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyRect-0.1.4.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyScreeze-0.1.27.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyTweening-1.0.3.zip
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\setuptools-40.6.2-py2.py3-none-any.whl
"""
把運行結果拷貝到命令列,執行程序會報錯,沒關系,拷貝執行幾次即可,因為已經安裝的并不會報錯,當然你也可以把安裝好了的刪掉,安裝程序肯定會更快點……直到最后 pip list 和在線安裝的 pip list 相同

比如像這樣之后,就可以洗掉 pillow 以及 pip 的安裝命令
最后,剩下三個庫一直無法安裝:


分別是:PyMsgBox、PyScreeze 以及 PyAutoGUI
但查看 setuptools,版本是符合要求的,很奇怪,與其說很奇怪,不如說……

原來我一開始喜歡 .whl 格式的是沒錯的!!!
4.解決疑難雜癥
剛剛那搞不定的幾個包,除了最后一個,有可能是需要依賴前面的庫而無法安裝之外,PyMsgBox、PyScreeze 的提示都是和 setuptools 有關,換一個安裝方法:
這里參考了網上的一點資料:window下python怎么離線安裝tar.gz
4.1 先將這兩個庫分別解壓

解壓后均可看到有個 setup.py 檔案
4.2 使用 setup.py 安裝
當前目錄下,按住 shift + 滑鼠右鍵,選擇 “在此處打開 Power 視窗”,打開 powershell
python36 setup.py install

我又嘗試了普通的 cmd 命令框,也可以執行(但這里就需要使用絕對路徑,因為不在其目錄下)

接下來最后一步了,安裝我們一開始想安裝的第三方庫: pyautogui !!!(我還用回 pip 的方法,當然解壓后再用 setup.py 也是可以的)

5.見證奇跡的時刻

查看下庫的安裝情況,并 import 一把 !

沒有報錯!!!!!!!
小結
1.先在能聯網的電腦上,pip 安裝想要安裝的第三方庫
2.查看所有的庫及其版本 pip list
3.將所有的庫下載到本地,并移動到目標電腦上
4.逐個離線安裝,先使用簡單的方法:pip
5.安裝不上的,將其解壓,使用其包里的 setup.py 來安裝
6.全部安裝好后,不要嘚瑟,import 成功了才是成功!
7.不得不感嘆,pip 是真的強大(當然,連網后才是真的強大!)
8.人生苦短,最好連網
統一宣告
1.本文為原創博客,原創實屬不易,若轉載請注明出處,感謝~
2.關于原創博客內容,可能會有部分內容參考自互聯網,如有原創鏈接會宣告參考;如找不到原創鏈接,在此宣告如有侵權請聯系洗掉哈~
3.看完有幫助,點個贊唄,多謝了~

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/293971.html
標籤:python
