最近組裡安排了新內網,又要配環境。 眾所周知,內網安裝python庫需要先到www.pypi.org找到對應版本的包,然後再下載whl文件,上傳到內網,再用`pip install "文件地址"`去安裝。 這樣就會出現一個問題,鬼知道這個包需要的前置依賴是什麼,pip會自動檢查前置依賴,然後自動從源 ...
最近組裡安排了新內網,又要配環境。
眾所周知,內網安裝python庫需要先到www.pypi.org找到對應版本的包,然後再下載whl文件,上傳到內網,再用pip install "文件地址"
去安裝。
這樣就會出現一個問題,鬼知道這個包需要的前置依賴是什麼,pip會自動檢查前置依賴,然後自動從源下載,但是內網又連不上互聯網,然後要等三五次連接失敗才結束。
深感這個過程之麻煩,於是寫了兩個powershell腳本,一個自動批量下載指定的包,一個自動安裝所有的包。
使用過程如下:
-
首先查看內網環境的python版本,然後在外網的anaconda中創建一個同樣python版本的虛擬環境,這是為了保證pip自動安裝的庫的版本能使用在內網裡。
-
打開anaconda powershell promt,這是內置了anaconda指令的powershell控制台,切換到對應的虛擬環境。
-
替換下麵腳本中的包列表字元串和文件夾地址字元串,然後複製粘貼並運行,運行完就會下載好包含各種whl的文件夾了
# 替換,包必須是能正常pip install的包,例如包含cv2模塊的包不是cv2,而是opencv-python $packagesString = "matplotlib pyside6 opencv-python" # 替換,最後要加'\' $folder = "E:\python3_9_12\" $packages = $packagesString -split " " foreach ($package in $packages) { pip download $package -d $folder$package }
-
上傳到內網,然後在內網的powershell中運行以下腳本,即可將文件夾下所有的庫都安裝到當前的python環境中。
# 替換成內網中的路徑,最後要加'\' $folderPath = "D:\python\" $folders = Get-ChildItem -Path $folderPath -Directory foreach ($folder in $folders) { pip install --no-index --find-links=$folderPath$folder $folder }
最後就大功告成了,終於擺脫了麻煩的安裝過程。