python - 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----
任何帮助表示赞赏,谢谢!
解决方案
您需要将您的导入语句从
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 包。
推荐阅读
- javascript - 如何将 javascript 正则表达式转换为 php 正则表达式
- excel - 检索一行数据并获取表头
- python - Python pyqt5使settooltip的字体与按钮字体不同
- regex - 预读/回顾与捕获组
- python - NLP 多类分类器 loss 上不去
- docker - 无法使用 VS 2019 在 Linux 容器中运行 ASP.NET Core
- python - 将 tensorflow BERT 检查点转换为 pytorch 时出错
- python - 我可以在matplotlib中显示没有科学计数法的图片像素值吗
- reactjs - 在 useEffect 挂钩中进行的异步调用的测试结果
- python - 如何重塑 ndarray,特别是简单的方法 ro (25,25) 到 (1,1)?