跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 如何能够获取到进程的第三方模块包版本号?
未分類
3 9 月 2020

如何能够获取到进程的第三方模块包版本号?

如何能够获取到进程的第三方模块包版本号?

資深大佬 : dwzhao 14

最近接了个工作
内容是:希望能够通过发指令给各个应用服务发消息,让各个服务汇报自己使用的第三方库版本信息。
目的:能够确认各个应用的版本号,方便实时查看和管理。
背景:各个服务因为启动时间很早的缘故,虽然所在机器的 requirement.txt 已经更新,但是进程内的第三方库版本还是旧的,一些接口不支持。

做法:
被否决的方法:
1 、查 requestment.txt 和启动时间,这个自由度太大了,不方便。
2 、跟进 path 中的信息来查看版本号,实际上和 1 一样
3 、使用系统命令 pip list,虚拟环境下的进程怎么处理?
想到的方法:
1 、因为是要查看进程内的第三方库,所以需要 import 这个第三方库,比如 import redis,输出对应的版本 redis.__version__,这样做会有什么问题么,求各位提提想法和建议~

大佬有話說 (9)

  • 資深大佬 : julyclyde

    https://setuptools.readthedocs.io/en/latest/pkg_resources.html#distribution-attributes

  • 資深大佬 : chinvo

    pip 也是个包,可以 import 进来用

  • 資深大佬 : 18870715400

    import subprocess
    pip_path = “~/miniconda3/bin/pip”
    res = subprocess.run(“{} list”.format(pip_path), shell=True, stdout=subprocess.PIPE)
    infos = res.stdout

    然后对 info 分割取包的版本信息

  • 主 資深大佬 : dwzhao

    @18870715400 这样只是调用系 pip 查看包的版本,并不代表进程内用的就是这个版本的包呀。除非让进程重启,这个显然是不可能的。

  • 主 資深大佬 : dwzhao

    @chinvo 看 pip 的 doc 里说:Even though pip is available from your Python installation as an importable module, via import pip, it is not supported to use pip in this way. For more details, see Fixing conflicting dependencies.

  • 資深大佬 : chinvo

    @dwzhao #5 只是 pip 官方不提供支持. 而且他说的这个用法主要是运行时安装新包. 只是用下 列出包 之类的功能, 不会有太大问题的.

  • 主 資深大佬 : dwzhao

    @chinvo,实际上这样难点倒不是如何找到包的版本,而是确认进程中引用到的包的版本,同时不能因为检查这个包而引入这个包,同时也不愿意去主动 reload_model

  • 主 資深大佬 : dwzhao

    用 pkg_resources 来查
    >>>import pkg_resources >>> pkg_resources.get_distribution(“construct”).version ‘2.5.2’

    print([p.project_name,p.version for p in pkg_resources.working_set])

  • 資深大佬 : 18870715400

    @dwzhao 你的进程使用了哪个 python 环境就用对应环境的 pip 啊, 什么叫做”不代表进程内用的就是这个版本的包”,难道你的一个环境同一个包还有多个版本么?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具