Python - 从源根导入导致“没有名为‘<源根>’的模块”

问题描述

调查我应该如何构建我克隆到 nose repository 中的项目和测试,并发现了我一直遇到的相同问题。

项目的结构如下:

nose <----- repository root
    nose <- source root
        __main__.py
        __init__.py
        core.py
        [...]
    unit_tests
    .gitignore
    [...]

如果我跑

python nose/__main__.py

我明白

File "/home/daniel/Projects/nose/nose/__main__.py",line 3,in <module>
    from nose.core import run_exit
ModuleNotFoundError: No module named 'nose'

我意识到可能有一个涉及 PYTHONPATH 的修复,但我对 Python 相当陌生,我觉得必须有一种方法可以让项目“开箱即用”,而不必修改任何系统变量。

对于上下文,当我发现我的测试失败时,整个调查就开始了,因为我的非测试代码中的导入会失败(我的项目结构与 Nose 的结构相同)。例如:

from package import module
from package.subpackage import module

运行测试时会导致以下错误

ModuleNotFoundError: No module named 'package'

如果我将导入更改为像鼻子一样,测试会运行良好。例如:

from project.package import module
from project.package.subpackage import module

但是当我尝试正常运行程序时会遇到上述错误

ModuleNotFoundError: No module named 'project'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)