批处理一键安装所有离线的Python库
一、應用背景
由于一些電腦不存在聯網環境,需要先在聯網的電腦中下載好離線的Python庫安裝包1,通常是whl或者zip格式,然后將資源文件拷貝到不聯網的電腦,用離線安裝包的格式進行安裝。
有的庫安裝依賴關系復雜,需要按照特定的順序對一系列Python庫進行安裝才能正確安裝。可以通過pip的--no-index --find-links=folder參數控制在本地搜尋依賴關系并完成安裝2。
眾所周知,用pip freeze命令可以凍結當前環境的第三方庫狀態,然后再在另一臺電腦上復刻環境。但是有時候如果不想復刻一個環境內的全部依賴包呢?
比如我只想安裝pandas數據分析庫、wxPythonGUI圖形庫、requests網絡分析庫,或者只安裝其中的幾個?為每一個庫建立一個requirements.txt然后依次安裝?那未免太麻煩了。
二、批量下載Python及依賴庫
使用pip download命令可以下載指定的Python庫及其依賴項,-d參數可以控制下載到指定的文件夾。
一些常見的且依賴關系復雜的Python庫:
:: GUI庫 pip download -d wxpython wxpython:: 3D圖形庫 pip download -d vtk vtk:: 數學庫 pip download -d pandas pandas pip download -d matplotlib matplotlib pip download -d opencv opencv-python pip download -d sympy sympy pip download -d scipy scipy:: 網絡分析 pip download -d requests requests pip download -d bs4 bs4 pip download -d selenium selenium:: 辦公自動化 pip download -d PyAutoGUI PyAutoGUI pip download -d pywin32 pywin32 pip download -d windnd windnd pip download -d pynput pynput:: 讀取文檔 pip download -d xlutils xlutils pip download -d docx python-docx:: 數據分析 pip download -d jieba jieba pip download -d xpinyin xpinyin pip download -d qrcode qrcode:: 打包工具 pip download -d PyInstaller PyInstaller:: 37個依賴庫! pip download -d akshare akshare:: 59個依賴庫! pip download -d jupyter jupyter三、批處理安裝Python庫
運行上面的下載命令后,會在當前文件夾生成一系列的文件夾,在這些文件夾中存有相應庫的所有依賴包。
在這些文件夾同級別的路徑下,創建一個批處理文件,可以命名為auto_install.bat,內容如下:
@echo off title Auto Wheels Installer (by lishixian) mode con cols=150 lines=30 & color b for /d %%i in (*) do (for /r %%j in (%%i\*.*) do (pip install %%j --no-index --find-links=%%i)) pause然后運行,就可以將批處理文件所在目錄下的所有庫全部安裝完成了。
實際使用時,可以將整個文件夾攜帶,拷貝到需要安裝的電腦上,移除不需要安裝的Python包文件。然后運行批處理程序,就可以有選擇地復刻需要的Python包環境。
簡單解讀一下這段批處理命令3,這是一個雙層循環:
第一層循環
for /d %%i in (*) do (...)通過/d開關,對當前目錄的所有文件夾進行遍歷,文件夾路徑存儲到%%i中,然后執行do中的命令。
第二層循環
for /r %%j in (%%i\*.*) do (...)通過/r開關,對%%i目錄中的所有文件進行遍歷,文件路徑存儲到%%j中,然后執行do中的命令。
內層命令
pip install %%j --no-index --find-links=%%i對遍歷到的每一個文件%%j,嘗試進行pip安裝,在%%i路徑中查找安裝包的依賴關系庫。由于文件夾中的內容是通過之前的pip download -d path package建立的,所以該目錄下必然存在該安裝包的全部依賴庫,所以可以順利完成安裝。
四、CMD一鍵完成版
CMD的命令語法和批處理略有不同,可以這樣寫:
for /r %i in (*) do pip install "%i" --no-index --find-links="%~pi"五、pip配置文件永久生效
運行命令打開或新建pip配置所在文件:
notepad %HOMEPATH%/pip/pip.ini加入段落4:
[install] no-index = true find-links = D:/simple之后使用pip install <name>的時候,都會從本地的D:/simple文件夾中查找名為name的庫及相關依賴項。
https://blog.csdn.net/Enceladuce/article/details/112471440 ??
https://blog.csdn.net/excelNo1/article/details/117733718 ??
https://blog.csdn.net/annita2019/article/details/122908812 ??
https://www.zhihu.com/question/533375345/answer/2490885028 ??
總結
以上是生活随笔為你收集整理的批处理一键安装所有离线的Python库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用python做dnf脚本好还是c语言好
- 下一篇: Docker基础(一)