首页 > 解决方案 > 导入不在 python 中运行

问题描述

我正在开发一个 Django 项目,我正在尝试运行一个测试文件,但导入时出现错误。我的文件夹层次结构就像图像:

在此处输入图像描述

在此处输入图像描述

查看 core.py 中函数 process_data 的图像

在此处输入图像描述

我在测试目录中试图运行我的测试文件。

我的导入就像代码一样:

from coordenadas.core import process_data

但是,当我运行我的代码时,会显示一个错误:

Traceback (most recent call last):
  File "tests_class_moviment.py", line 1, in <module>
    from coordenadas.core import process_data
ModuleNotFoundError: No module named 'coordenadas'

我尝试使用相对导入

from .coordenadas.core import process_data
from .core import process_data
from ..coordenadas.core import process_data
from ..core import process_data

但在 pycharm 中没有显示错误的唯一方法是

from coordenadas.core import process_data

一些想法我该如何解决?

标签: python-3.ximport

解决方案


在一个部分不相关的说明中,绝对导入绝对比相对导入更推荐。PEP8:

非常不鼓励用于包内导入的相对导入。始终对所有导入使用绝对包路径。即使现在 PEP 328 [7] 已在 Python 2.5 中完全实现,它的显式相对导入风格也被积极劝阻。绝对导入更便携,通常更具可读性。

至于模块错误本身,__init__.py在“coordenadas”目录下添加一个文件就会变成一个模块,这正是你所需要的。


推荐阅读