如何在运行时检查PyPI模块的最新版本?

2024-04-26 02:58:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python制作了一个简单的CLI。每次运行时,我都要检查它是否更新到了最新版本,如果没有,就打印一条小消息

我相信这段代码

import pkg_resources
installed_version = pkg_resources.get_distribution("videocloud").version

应该告诉我安装了哪个版本,但我找不到方法来告诉最新版本是什么。你知道吗

有什么API可以获得PyPI模块的最新版本吗?你知道吗


Tags: installed方法代码import版本pypiapi消息
1条回答
网友
1楼 · 发布于 2024-04-26 02:58:23

我使用beautifulsoup4urllib编写了这个脚本,因此您需要一个internet连接才能运行它。你知道吗

import bs4 as bs
import urllib.request as request

repo = input('Please enter a repository name: ')

soup = bs.BeautifulSoup(request.urlopen(f'https://pypi.org/project/{repo}/'), 'lxml')

title = []
for item in soup.find_all('h1', {'class': 'package-header__name'}):
    title.append(item.text)

version = title[0].split()[-1]

print(version)

这是因为pypi网站上的标题中有版本,并且有一个html标识符,允许您轻松地找到标题。例如:

pypi website

运行示例:

Please enter a repository name: pyaes
1.6.1

作为一种功能:

def version(repo):
    try:
        soup = bs.BeautifulSoup(request.urlopen(f'https://pypi.org/project/{repo}/'), 'lxml')

        title = []
        for item in soup.find_all('h1', {'class': 'package-header__name'}):
            title.append(item.text)

        return title[0].split()[-1]
    except urllib.error.URLError as e:
        print('No internet connection')

相关问题 更多 >