[英]Getting pip dependency versions without installing?
當您告訴 pip 同時安裝多個包時,它會查找所有子依賴項並安裝所有父 package 限制允許的最新版本。
例如,如果 packageA 要求 child>=0.9,而 packageB 要求 child<=1.1,那么 pip 將安裝 child==1.1。
我正在嘗試編寫一個腳本來掃描requirements.txt
並固定所有未列出的子 package 版本。
一種方法是通過pip install -r requirements.txt
簡單地安裝requirements.txt
文件中的所有內容,然后解析 pip pip freeze
的 output,並從我的requirements.txt
文件中刪除所有包。 剩下的應該是子包和 pip 計算出的最高版本號。
但是,這需要創建一個 Python 虛擬環境並安裝所有包,這可能需要一點時間。 pip 中是否有任何選項可以在不實際安裝軟件包的情況下進行版本計算? 如果沒有,是否有提供此功能的類似 pip 的工具?
您可以使用 json 模塊閱讀 PyPI 托管包的 package 要求:
python3 終端/腳本:
import csv
import json
import requests
your_package = str('packageA')
pypi_url = 'https://pypi.python.org/pypi/' + your_package + '/json'
data = requests.get(pypi_url).json()
reqs = data['info']['requires_dist']
print(reqs)
print('Writing requirements for ' + your_package + ' to requirements.csv')
f = open('requirements.csv', 'w')
w = csv.writer(f, delimiter = ',')
w.writerows([x.split(',') for x in reqs])
f.close()
如果我正確地回答了你的問題,你正在嘗試安裝 package 的特定版本,一種方法是在你的 requirement.txt 文件中指定版本之后,它可以通過使用 pip 安裝然后依賴項加上版本來安裝例如 pip 安裝 WhatsApp v3.5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.