pkg_resources.get_distribution("mymodule").version 重新加载后未更新

Posted

技术标签:

【中文标题】pkg_resources.get_distribution("mymodule").version 重新加载后未更新【英文标题】:pkg_resources.get_distribution("mymodule").version not updated after reload 【发布时间】:2020-02-24 23:29:55 【问题描述】:

我正在使用

检查包是否过期
pkg_resources.get_distribution("mymodule").version

如果版本与最新版本不匹配,我正在运行 pip install --upgrade git+...。执行reload('mymodule') 正确表示更改,但上述sn-p 仍然显示以前的版本,即使该版本在setup.py 中被撞了

我猜该版本仅在每个 python 会话中更新?还有其他获取实时信息的方法吗?阅读最新的dist-info 目录是否安全?

【问题讨论】:

【参考方案1】:

我会试试reload(pkg_resources)

>>> import pkg_resources
>>> pkg_resources.get_distribution('thing').version
'0.0.0.dev1'
>>> # in a different shell session install the new version of thing
... 
>>> pkg_resources.get_distribution('thing').version
'0.0.0.dev1'
>>> import importlib
>>> importlib.reload(pkg_resources)
<module 'pkg_resources' from '/tmp/tmp.VEueUV76hD/Thing/.tox/develop/lib/python3.6/site-packages/pkg_resources/__init__.py'>
>>> pkg_resources.get_distribution('thing').version
'0.0.0.dev2'

见https://github.com/pypa/setuptools/issues/373

【讨论】:

确实,reload 似乎可以解决问题!感谢您的详细回答。

以上是关于pkg_resources.get_distribution("mymodule").version 重新加载后未更新的主要内容,如果未能解决你的问题,请参考以下文章