0

有没有办法通过 Python 以编程方式检查用户是否有可用的 setuptools 的“easy_install”或“easy_install”的分发版本?

我想知道其中哪些是可用的(理想情况下哪些是系统“正在使用”的。)

如何才能做到这一点?谢谢。

4

2 回答 2

2

基于易于安装

>>> import pkg_resources
>>> pkg_resources.get_distribution('setuptools')
setuptools 0.6c11 (t:\tmp\easyinstall\lib\site-packages\setuptools-0.6c11-py2.7.egg)
>>> pkg_resources.get_distribution('setuptools').project_name
'setuptools'

对于基于分布

>>> import pkg_resources
>>> pkg_resources.get_distribution('setuptools')
distribute 0.6.31 (t:\tmp\distribute\lib\site-packages\distribute-0.6.31-py2.7.egg)
>>> pkg_resources.get_distribution('setuptools').project_name
'distribute'
于 2013-02-05T20:56:46.670 回答
1

使用包含的pkg_resources来检测是否setuptools可用,如果可用,它是什么版本。如果无法导入pkg_resources,则说明没有setuptools安装库,句号:

try:
    import pkg_resources
except ImportError:
    print "No setuptools installed for this Python version"
else:
    dist = pkg_resources.get_distribution('setuptools')
    print dist.project_name, dist.version

项目名称是distributeor setuptools; 对我来说,这打印:

>>> import pkg_resources
>>> dist = pkg_resources.get_distribution('setuptools')
>>> print dist.project_name, dist.version
distribute 0.6.32

有关可用信息的更多详细信息,请参阅Distribution属性文档

于 2013-02-05T21:57:37.647 回答