【问题标题】:How can I test importing required modules after installing via pip?通过 pip 安装后如何测试导入所需的模块?
【发布时间】:2012-01-05 16:53:36
【问题描述】:

我正在自动创建 virtualenv,然后通过 pip(及其 -r 选项)从需求文件安装模块。

我发现某些模块安装成功,但从环境中导入时出错。

安装需求后,如何测试导入requirements.txt 中列出的所有模块?

【问题讨论】:

  • 一种快速而肮脏的方式是python -m module 并检查返回值,但当然,这要求有问题的模块可以非交互方式运行......(以及 脚本本身返回0)

标签: python virtualenv pip


【解决方案1】:

requirements.txt 不列出模块(导入命名空间),它列出“分发”(PyPI 命名空间)。也就是说,您可以使用pkg_resources 列出所有模块并尝试导入它们:

import pkg_resources, setuptools

for dist in pkg_resources.working_set:
    for pkg in setuptools.find_packages(dist.location):
        __import__(pkg)

它仍然需要一种从“包”(distutils 术语)到模块的方法。

【讨论】:

  • 是的,我想这是我问题的一部分。我会调查 pkg_resources。
【解决方案2】:

为什么不:

$ python -c "import os"

然后检查退出状态($?)?

【讨论】:

  • 好吧,我可以手动测试导入模块,但关键是我正在构建具有不同要求的不同虚拟环境,并且只想测试该虚拟环境所需的模块。看来我需要使用 pkg_resources 来获取模块信息,然后测试导入。
猜你喜欢
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
相关资源
最近更新 更多