Python依賴包遷移到斷網環境操作
場景:由于自己的電腦A性能不足,需要轉移到一臺高性能的主機B上運行python程序,但是該主機不能連接互聯網。
問題:在個人電腦A上建立了一個虛擬環境,安裝了依賴包并且調試程序使其能運行。但是將虛擬環境所在文件夾復制粘貼到主機B上時,無法運行。
環境:Windows、Python3.6
解決辦法:
1.主機A(虛擬環境激活)pip freeze >requirements.txt 將虛擬環境中安裝的Python依賴包記錄到文件requirements.txt中。
2.主機A(虛擬環境激活)pip download -r requirements.txt -d packages 將安裝的Python依賴包保存到packages目錄下。
3.主機B 在斷網的主機上安裝好python3.6
4.主機B 在項目下建立虛擬環境,并激活。同時將whls文件夾和requirements.txt復制粘貼到項目目錄下。
5.主機B(虛擬環境激活)pip install --no-index --find-links=packages -r requirements.txt 在主機B的虛擬環境中安裝requirements.txt里的依賴包。
補充知識:python項目導出所需要的依賴庫或者整個環境的庫
使用pip freeze
pip freeze > requirements.txt
這個命令安裝了環境中的所有第三方包,一般在虛擬環境中可以這樣使用比較方便。
安裝命令
pip install -r requirements.txt
使用 pipreqs
如果想要在正常的環境下整理出一個項目所使用的第三方庫可以使用pipreqs
第一步安裝
pip install pipreqs
使用也很簡單 pipreqs 路徑名
此處直接進到項目根目錄,所以是./
pipreqs ./
這樣直接可以生成項目中所以用的第三方庫。
如果報錯
File 'c:usersdevtaoappdatalocalprogramspythonpython36-32libsite-packagespipreqspipreqs.py', line 341, in initextra_ignore_dirs=extra_ignore_dirs)File 'c:usersdevtaoappdatalocalprogramspythonpython36-32libsite-packagespipreqspipreqs.py', line 75, in get_all_importscontents = f.read()UnicodeDecodeError: ’gbk’ codec can’t decode byte 0xa6 in position 186: illegal multibyte sequence
可以在安裝的pipreqs.py中修改 74行左右的encoding=‘utf-8’
以上這篇Python依賴包遷移到斷網環境操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章: