首页 > 解决方案 > importError python while import 存在并且Pycharm识别它

问题描述

我正在做一个项目,但由于某种原因,我遇到了一个无法修复的错误。

错误是:

`from parser import WorldParser`
`ImportError: cannot import name WorldParser`

我正在使用 Pycharm,我尝试使用 Pycycle 来查找我是否有导入周期,但它没有找到任何周期,还尝试手动查找周期,但我没有找到任何周期。

程序结构如下:

project folder contains:
agent.py
graph.py
parser.py
simulation.py
state.py
utils.py

现在我将详细说明每个文件的导入。

-----agent.py----

from utils import operation_dec,get_path_from_to

-----agent.py----

-----graph.py----

none

-----graph.py----

-----parser.py----

from graph import Vertex, Edge, UndirectedGraph

from state import WorldState

from utils import create_map_args, get_path_from_to

-----parser.py----

-----simulation.py----

from parser import WorldParser

from beautifultable import BeautifulTable

from agent import GreedyAgent, HumanAgent, VandalAgent

from state import WorldState

from utils import InfoObject

-----simulation.py----

-----state.py----

from beautifultable import BeautifulTable

-----state.py----

-----utils.py----

from heapq import *

-----utils.py----

任何帮助表示赞赏,谢谢!

标签: pythonpython-2.7pycharmpython-import

解决方案


您需要将您的导入语句从

from graph import Vertex, Edge, UndirectedGraph
from state import WorldState
from utils import create_map_args, get_path_from_to

到以下:

from .graph import Vertex, Edge, UndirectedGraph
from .state import WorldState
from .utils import create_map_args, get_path_from_to

当您引用同一目录中的模块时。点告诉 Python 导入来自同一目录/包中的另一个模块。如果你在 import 语句中去掉点,Python 认为你指的是全局包而不是本地包。查看 Python 的官方文档以获得更详细的解释。

编辑:我忘了提到你应该__init__.py在目录中添加一个文件,以向 Python 表明该目录是一个 Python 包。


推荐阅读