gpt4 book ai didi

Python Easy_Install 更新报告

转载 作者:行者123 更新时间:2023-11-28 22:05:30 25 4
gpt4 key购买 nike

是否有一种简单的方法来获取所有通过 easy_install 安装的具有更新版本的 Python 库的报告?我不想简单地在已知已安装库的列表上重新运行 easy_install,因为较新的库可能具有非向后兼容的更改。我想要一份列表,以便快速查看更改内容,并检查新版本以审查任何可能存在冲突的更改。

最佳答案

这是一个快速脚本,用于扫描 easy-install.pth 文件并打印已安装软件包的较新版本列表。您可以自定义它以仅显示可用的最新版本(取 parsed_version 的最大值)、调整输出格式等:

#!/usr/bin/env python
import os, sys
from distutils import sysconfig
from pkg_resources import Requirement
from setuptools.package_index import PackageIndex

index = PackageIndex()
root = sysconfig.get_python_lib()
path = os.path.join(root, 'easy-install.pth')
if not os.path.exists(path):
sys.exit(1)
for line in open(path, 'rb'):
if line.startswith('import sys'):
continue
path = os.path.join(root, line.strip(), 'EGG-INFO', 'PKG-INFO')
if not os.path.exists(path):
continue
lines = [r.split(':', 1) for r in open(path, 'rb').readlines() if ':' in r]
info = dict((k.strip(), v.strip()) for k, v in lines)
print '%s %s updates..' % (info['Name'], info['Version'])
spec = Requirement.parse(info['Name'] + '>' + info['Version'])
index.find_packages(spec)
versions = set([
(d.parsed_version, d.version) for d in index[spec.key] if d in spec
])
if versions:
for _, version in sorted(versions):
print '\t', version
else:
print '\tnone'

用法:

% easy_install networkx==1.3
% easy_install gdata==2.0.5
% ./pkgreport
networkx 1.3 updates..
1.4rc1
1.4
gdata 2.0.5 updates..
2.0.6
2.0.7
2.0.8
2.0.9
2.0.14

关于Python Easy_Install 更新报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5195764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com