尝试将项目目录中的文件夹中的文件作为包导入时,我遇到了“找不到模块”错误的常见问题。我已经尝试了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/
我需要配置什么才能使其正常工作?此外,无论我需要更改哪些设置,我都可以针对我正在使用的开发环境进行这些设置吗?
答案 0 :(得分:0)
将from .code import my_function
更改为from code import my_function
。包的顶级由具有__init__.py
文件的最高文件夹定义。因此,项目的顶级是reporting
文件夹,code.py
不需要是相对导入。最好避免相对进口或者让像PyCharm这样的编辑为你照顾它!