【问题标题】:unable to import module error in pylint无法在 pylint 中导入模块错误
【发布时间】:2013-07-24 02:07:29
【问题描述】:

我正在玩 pylint 并使用 sonarqube 进行代码分析。一切都已安装并且工作正常。但是我收到错误“f0401”说我无法导入模块。这是我的目录结构。

top level:
    directoryA
        __init__.py
        folderA
        some .py files        
    directoryB
        __init__.py
        folderA
        some .py files
    directoryC
        __init__.py
        folderA
        some .py files

我在目录 A 上运行 pylint。目录 A 中的 .py 文件有一些从目录 B 和目录 C 的导入。因此,当我在 directoryA 上运行 pylint 时,会出现导入错误,例如无法“导入 directoryB.somemodule”。我希望我能够解释清楚。

一些机构可以帮助他如何解决这个问题。附言如果有人向我指出一些关于使用和调整 pylint 的优秀文档和教程,那就太好了。

【问题讨论】:

    标签: sonarqube pylint sonar-runner


    【解决方案1】:

    Pylint 依赖于正确设置的PYTHONPATH。如果你输入python toplevel/directoryA/file.py 会发生什么?那么导入应该可以工作了。

    提示:如果他们不这样做,您可能想要运行 export PYTHONPATH=toplevel 或类似的东西。

    【讨论】:

    • 我不确定如何设置 PYTHONPATH。我是新手,正在努力学习。我已经尝试按照您所说的方式导出 PYTHONPATH,但它没有奏效。与 VIRTALENV 有什么关系吗?我正在使用 VIRTENV。
    【解决方案2】:

    pylint 会将当前目录作为 PYTHONPATH 的一部分(这只是一个环境变量,指示 python 解释器应该在哪里搜索包)。

    因此,如果您在 dirA 中运行 pylint,它会知道目录 A 中的所有内容(例如文件夹 A)和标准 PYTHONPATH 中的其他内容,但不知道目录 B,因为 pylint 不知道在哪里可以找到 directoryB.somemodule.

    最简单的解决方案是在项目的根目录中运行 pylint xxxx。否则,您必须将其添加到 PYTHONPATH,或使用 pylintrc 文件(建议)。

    有关 pylint 运行的更多详细信息,请查看its document 了解详细信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 2022-07-09
      • 2019-11-09
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 2019-09-02
      相关资源
      最近更新 更多