如何以编程方式检查python软件包是否为最新版本?

约瑟夫 :

如何在脚本中以编程方式检查软件包的最新版本,并返回true或false?

我可以使用以下脚本进行检查:

package='gekko'
import pip
if hasattr(pip, 'main'):
    from pip import main as pipmain
else:
    from pip._internal import main as pipmain
pipmain(['search','gekko'])

或使用命令行:

(base) C:\User>pip search gekko
gekko (0.2.3)  - Machine learning and optimization for dynamic systems
  INSTALLED: 0.2.3 (latest)

但是,如何以编程方式检查并返回true或false?

优素福·巴克迪(Yusuf Baktir):

快速版本(仅检查软件包)

以下代码使用不可用的版本(如)调用该软件包pip install package_name==random该调用将返回所有可用版本。该程序将读取最新版本。

然后,程序运行pip show package_name并获取软件包的当前版本。

如果找到匹配项,则返回True,否则返回False。

考虑到它是一个可靠的选择 pip

import subprocess
import sys
def check(name):
    latest_version = str(subprocess.run([sys.executable, '-m', 'pip', 'install', '{}==random'.format(name)], capture_output=True, text=True))
    latest_version = latest_version[latest_version.find('(from versions:')+15:]
    latest_version = latest_version[:latest_version.find(')')]
    latest_version = latest_version.replace(' ','').split(',')[-1]

    current_version = str(subprocess.run([sys.executable, '-m', 'pip', 'show', '{}'.format(name)], capture_output=True, text=True))
    current_version = current_version[current_version.find('Version:')+8:]
    current_version = current_version[:current_version.find('\\n')].replace(' ','') 

    if latest_version == current_version:
        return True
    else:
        return False

以下代码要求pip list --outdated

import subprocess
import sys

def check(name):
    reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'list','--outdated'])
    outdated_packages = [r.decode().split('==')[0] for r in reqs.split()]
    return name in outdated_packages

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

节点:以编程方式检查软件包的最新版本

如何以仅保留每个软件包最新版本的方式清理var / cache / apt

无法安装最新版本的软件包

安装最新版本的软件包

Java以编程方式检查最新版本

Composer不会将软件包更新为最新版本

pip2未将软件包更新为最新版本

PyPI如何确定软件包的最新版本?

如何通过AzureDevOps REST API仅获取软件包的最新版本

如何在Ubuntu中安装最新版本的软件包?

如何使用apt-get安装软件包的最新版本?

如何在最新版本的VSTS中添加Nuget软件包徽章

如何使Pip在PyPI上显示软件包的最新版本?

如何说服VS Code引用软件包的最新版本?

如何在Bower中设置软件包的最新版本?

npm-如何显示软件包的最新版本

如何获得通过apt-get安装的软件包的最新版本?

如何设置使用pubspec.yaml中软件包的最新版本?

如何从npmjs获取我的软件包的最新版本

如何在flutter创建模板中获取软件包的最新版本

无法安装最新版本的python软件包

Python-无法安装某些最新版本的软件包

当软件包为最新版本时,如何修复NPM软件包Tar(具有任意文件覆盖的高度漏洞)?

如何使用稳定版本的Debian安装最新版本的软件包(例如Apache2)?

为什么`npm update -g`不将我的全局软件包更新为最新版本?

nuget软件包的最新版本仍然不是最新的

如何确定是什么原因阻止Composer安装软件包的最新版本?

回购最新版本过旧时,如何在Fedora 24中更新软件包?

如何在构建时将NuGet软件包更新到最新版本,而不更改项目文件