【问题标题】:Pycharm cannot find module (used to work) when clicking the `run` button单击“运行”按钮时,Pycharm 找不到模块(用于工作)
【发布时间】:2021-09-02 04:23:44
【问题描述】:

我曾经能够运行 Python 单元测试并且一切正常,但突然停止了?我将其归因于为调试器安装了 cython 加速,但我不知道如何证明这一点。我说这可能是 cython 加速,因为安装后立即进行的测试是 ModuleNotFoundError 的开始。


文件夹结构

Top_folder
  - module
    - submodule1
    - submodule2
    - __init__.py
  - tests
    - test1
    - test2
    - __init__.py

test1的内容大致如下

from module.submodule1.foo import bar

当我运行它时,按下内置的运行按钮,它对我尖叫:

ModuleNotFoundError: No module named 'module.submodule1'


我尝试过的

  1. 标记源根目录。我将module 标记为我的源根目录。

  2. tests 标记为我的测试根。

  3. 删除了.idea 文件夹。

  4. 使缓存失效。

  5. 删除我的 Conda 环境。


【问题讨论】:

  • 你是如何运行测试的?是 pytest 还是测试只是常规的 Python 模块?
  • 他们是unittests。
  • Top_folder 是项目根目录还是项目根目录中的目录?在最后一种情况下 - 将Top_folder 标记为源根。 Ctrl/Cmd+单击from module.submodule1.foo import bar 中的“模块” - 它会将您带到预期的位置吗?您还可以在测试脚本的第一行插入import module; print(module),以验证在运行时导入了正确的模块。
  • > 是否会将您带到预期的位置?嗯,我似乎无法将任何东西标记为项目根目录。我只能将东西标记为源根....有趣的是,当我在foo 中的__main__ 下添加一些代码时,它能够毫无问题地运行

标签: python pycharm python-unittest


【解决方案1】:

愚蠢的 pycharm 改变了默认的测试运行器。这个该死的 IDE 有时真是让人头疼。

1) Open up settings
2) Tools
3) Python Integrated tools
4) Testing. Change to whatever runner you want as the default

请注意,您必须删除任何其他测试运行程序才能使其构建正确的配置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多