从文件夹导入时出现Python“模块未找到”错误?

时间:2017-07-19 00:18:36

标签: python python-3.x

尝试将项目目录中的文件夹中的文件作为包导入时,我遇到了“找不到模块”错误的常见问题。我已经尝试了Stackoverflow答案的几个解决方案,但没有一个对我有用。这是正在发生的事情,以及我尝试过的事情:

我正在使用PyCharm在Flask项目的conda环境devenv中工作,并且有一个像这样的项目目录:

/some/path/project_root/ migrations/ static/ templates/ reporting/ __init__.py code.py tests.py

tests.py文件中,有导入语句导入code.py作为模块:

from .code import my_function

但是,当我运行(devenv) me@comp:project_root$ > python reporting/tests.py

我收到错误:ModuleNotFoundError: No module named '__main__.code'; '__main__' is not a package

我尝试将项目目录路径附加到$ PYTHONPATH,echo $PYTHONPATH返回/some/path/project_root/

我需要配置什么才能使其正常工作?此外,无论我需要更改哪些设置,我都可以针对我正在使用的开发环境进行这些设置吗?

1 个答案:

答案 0 :(得分:0)

from .code import my_function更改为from code import my_function。包的顶级由具有__init__.py文件的最高文件夹定义。因此,项目的顶级是reporting文件夹,code.py不需要是相对导入。最好避免相对进口或者让像PyCharm这样的编辑为你照顾它!