我有一个requirements.txt:
multiprocess
nltk
boosting
statsmodels
swifter
dask
catboost
spacy
seaborn
plotly
opencv
注意,并不是每个包都有版本。
对于每个包,我想要得到:
- 最新版本 <
- 其依赖关系/gh>
如何在Python中(而不是在shell中)使用而不使用下载或安装任何软件包?
注意:我已经尝试了johnnydep
包,但如果没有安装该包,它不提供上述数据。
获取单个包的版本和依赖项:
import json
import urllib.request
def get_package_deps(package_name):
url = f"https://pypi.org/pypi/{package_name}/json"
data = json.load(urllib.request.urlopen(url))
info = data['info']
version = info['version']
dependencies = info['requires_dist']
return version, dependencies
v, deps = get_package_deps('matplotlib')
print(v)
的回报:3.4.3
要对reqs文件中的所有包执行此操作,只需遍历reqs文件并使用try-except
调用此函数,以避免异常,包括HTTPError
和NoneType
。