使用pkg_resources获取pip版本时显示错误版本的问题及可靠获取模块版本的方法咨询
pkg_resources获取pip版本时显示错误版本的问题及可靠获取模块版本的方法咨询
我目前在收集多台机器的Python环境信息,每台机器运行的Python版本和安装的第三方模块都各不相同。最开始我尝试用pkg_resources来获取已安装模块的版本,但在其中一台机器更新pip之后,发现它返回的pip版本和实际版本完全对不上,具体情况如下:
Type "help", "copyright", "credits" or "license" for more information. >>> import pkg_resources >>> dists = [str(d).replace(" ", "==") for d in pkg_resources.working_set] >>> dists ['pip==1.5.6', 'pycryptodome==3.9.9', 'requests==2.10.0', 'setuptools==2.1', 'urllib3==1.24.3'] >>> import pip >>> pip.__version__ '19.1.1'
之后我在命令行执行python -m pip freeze,得到的输出是:
DEPRECATION: Python 3.4 support has been deprecated. pip 19.1 will be the last one supporting it. Please upgrade your Python as Python 3.4 won't be maintained after March 2019 (cf PEP 429). pycryptodome==3.9.9 requests==2.10.0 urllib3==1.24.3
不过其他模块的版本显示是正常的,比如:
>>> import requests >>> requests.__version__ '2.10.0' >>> import urllib3 >>> urllib3.__version__ '1.24.3'
我现在有两个疑问想请教大家:
- 为什么
pkg_resources返回的pip版本和实际安装的pip版本不一致? - 有没有一种不需要导入模块就能可靠获取模块版本的方法?
备注:内容来源于stack exchange,提问作者Héctor C.
相关产品推荐
相关产品推荐

