在尝试将项目目录中的文件夹中的文件作为包导入时,我经常遇到“找不到模块”错误的问题。我试过Stackoverflow答案中的几个解决方案,但没有一个对我有效。以下是发生的事情,以及我所做的尝试:
我在conda环境中使用PyCharm在Flask项目上工作,并拥有如下项目目录:
/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/
我需要配置什么才能使它正常工作?另外,无论需要更改什么设置,我都可以根据所使用的开发环境进行特定的设置吗?
将
from .code import my_function
更改为from code import my_function
。包的顶层由具有__init__.py
文件的最高文件夹定义。所以项目的顶层是reporting
文件夹,而code.py
不需要是相对导入。最好是避免相对进口或得到一个像PyCharm这样的编辑,将照顾你!相关问题 更多 >
编程相关推荐