項目場景
銀行項目,出于安全性考慮,,無法連接外網(wǎng),; 平常安裝 python 第三方庫,直接 pip install xxx 即可,,一般的包會自動連帶安裝好相關(guān)依賴包,,但在這里行不通……
解決方案
怎么辦呢?
打住……上錯表情包了 還能怎么辦,,干就完了,,離線安裝!??!
補充
后期踩坑過程中,找到了更有效的解決方法,,請移步:離線安裝python包_補充
第一步:先正常安裝
由于我環(huán)境上之前就有裝 python,,所以為了試驗,,這里安裝另一個新的 python,如何在同一臺電腦上安裝不同版本的python并可以正常運行呢,?其實直接安裝即可,,安裝之后再重命名一下 python.exe 比如:修改 python.exe 為 python36.exe,效果如下圖: 原理和環(huán)境變量有關(guān),,環(huán)境變量里的第一個指向 python.exe 的會被執(zhí)行,,其他的python.exe 都不會被運行,重命名后,,就是第一個指向 python3.6.exe 或者 別的 pythonx.x.exe 了,,就會被執(zhí)行 言歸正傳,現(xiàn)在使用 python36.exe 來安裝
1.先查看都有哪些庫
python36 -m pip list
2.根據(jù)提示,,先升級一下 pip
python36 -m pip install --upgrade pip
python36 -m pip install pyautogui
可以看到,裝了一堆其他的庫啊…… 再查看現(xiàn)在都有哪些庫 .啊……這……還好,,也沒有很多“隱藏的”依賴庫 這時候把庫導出來到 wtf.txt 里……當然,,規(guī)范來講是 requirements.txt ……可這是在線安裝才需要導出來,我這導出來有 *** 的 ** 用……
python36 -m pip freeze >> requirement.txt
那……一個個下載吧(有時間有能耐的可以寫個爬蟲,,我這就不試了,,別問,問就是不會)
第二步:下載并安裝離線包
1.上 PyPi 搜 相關(guān) 離線包
2.選擇版本
版本的選擇,,首先要根據(jù)上面 pip list 指定的版本去選,,如果 Download files 里頭沒有相關(guān)的版本,則去 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,大多數(shù)解釋器都是 cpython,,一般說的 python 也是指 cpython amd64 —> 適用于 64 位操作系統(tǒng) win32 —> 適用于 32 位操作系統(tǒng)
另外,,還有類似 pyflakes-2.3.1-py2.py3-none-any.whl (68.8 kB) 的 py2.py3-none-any —> 適用于 python2.x 以及 python3.x;適用于 32/64 位操作系統(tǒng),,也不限制 windows 還是 linux 等,,就是 any,無限制,,下這個就對了,!
可以看到這里只有一個,即類似 PyAutoGUI-0.9.53.tar.gz (59.0 kB) 的,,是 tar.gz 包,具體 和 whl 包的差異沒仔細看,,但我離線安裝方式一樣,,簡單地說,,對我而言沒區(qū)別~但我個人更傾向于 whl 包
3.下載所有需要的包,并 pip 安裝
根據(jù)剛剛的 pip list ,,逐個下載(還別說,,可能找個現(xiàn)成的爬蟲會來得更快……) 可以看到,這里還有 zip 的,,那先拿它來試試(我這里試驗的時候需要卸載python36,,再安裝python36,確保一切都是最開始的樣子,,再斷網(wǎng),,用這些第三方庫離線包來安裝……為什么不用python虛擬環(huán)境?因為害怕有什么幺蛾子~)
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyTweening-1.0.3.zip
先嘗試安裝,,再根據(jù)提示,,把需要做的補好,比如這里,,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,發(fā)現(xiàn) .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
'''
把運行結(jié)果拷貝到命令行,執(zhí)行過程會報錯,,沒關(guān)系,,拷貝執(zhí)行幾次即可,因為已經(jīng)安裝的并不會報錯,,當然你也可以把安裝好了的刪掉,,安裝過程肯定會更快點……直到最后 pip list 和在線安裝的 pip list 相同 比如像這樣之后,就可以刪除 pillow 以及 pip 的安裝命令 最后,,剩下三個庫一直無法安裝:
分別是:PyMsgBox,、PyScreeze 以及 PyAutoGUI 但查看 setuptools,版本是符合要求的,很奇怪,,與其說很奇怪,,不如說…… 原來我一開始喜歡 .whl 格式的是沒錯的!??!
4.解決疑難雜癥
剛剛那搞不定的幾個包,除了最后一個,,有可能是需要依賴前面的庫而無法安裝之外,,PyMsgBox、PyScreeze 的提示都是和 setuptools 有關(guān),,換一個安裝方法: 這里參考了網(wǎng)上的一點資料:window下python怎么離線安裝tar.gz
4.1 先將這兩個庫分別解壓
解壓后均可看到有個 setup.py 文件
4.2 使用 setup.py 安裝
當前目錄下,,按住 shift + 鼠標右鍵,選擇 “在此處打開 Power 窗口”,,打開 powershell
python36 setup.py install
我又嘗試了普通的 cmd 命令框,,也可以執(zhí)行(但這里就需要使用絕對路徑,因為不在其目錄下) 接下來最后一步了,,安裝我們一開始想安裝的第三方庫: pyautogui ?。。,。ㄎ疫€用回 pip 的方法,,當然解壓后再用 setup.py 也是可以的)
5.見證奇跡的時刻
查看下庫的安裝情況,并 import 一把 ,! 沒有報錯?。。,。,。。,?!
小結(jié)
1.先在能聯(lián)網(wǎng)的電腦上,pip 安裝想要安裝的第三方庫 2.查看所有的庫及其版本 pip list 3.將所有的庫下載到本地,,并移動到目標電腦上 4.逐個離線安裝,,先使用簡單的方法:pip 5.安裝不上的,將其解壓,,使用其包里的 setup.py 來安裝 6.全部安裝好后,,不要嘚瑟,import 成功了才是成功,! 7.不得不感嘆,,pip 是真的強大(當然,,連網(wǎng)后才是真的強大!) 8.人生苦短,,最好連網(wǎng)
統(tǒng)一聲明
1.本文為原創(chuàng)博客,,原創(chuàng)實屬不易,若轉(zhuǎn)載請注明出處,,感謝~ 2.關(guān)于原創(chuàng)博客內(nèi)容,可能會有部分內(nèi)容參考自互聯(lián)網(wǎng),,如有原創(chuàng)鏈接會聲明引用,;如找不到原創(chuàng)鏈接,在此聲明如有侵權(quán)請聯(lián)系刪除哈~ 3.看完有幫助,,點個贊唄,,多謝了~
|