我在这里的问题更多的是关于以一种被认为是“Pythonically correct”的方式解决导入错误的适当方法,如果有这样一个术语的话。我以为我有办法解决我的问题(贴在下面并更新),但即使这样也不管用
上下文
我已经查看了对此的各种响应(比如How to resolve import errors in python?),我认为我已经做了这些事情,但是我仍然有一个问题,我在这里发布
示例
我有以下结构:
pacumen
rules
__init__.py
pacman_rules.py
pacman.py
game.py
在pacman_rules.py
我有一个类:
class PacmanRules:
....
在我的pacman.py
文件中,我有以下import语句:
from rules.pacman_rules import PacmanRules
请注意,这是PyCharm自动生成的。所以PyCharm告诉我它很好解决
但是,当我从命令行运行pacman.py
时,会出现以下错误:
ImportError: cannot import name PacmanRules
考虑到代码行,我不知道为什么会发生这种情况
在pacman.py
中,我也有这样一句话:
from game import GameStateData
那一个很好用。注意,类GameStateData
来自我的game.py
文件。所以我猜我的问题是,我试图从不同目录中的文件导入,而不是从同一目录中的文件导入
可能的解决方案(更新:不起作用)
所以我尝试了这个导入:
from rules import pacman_rules
这似乎管用,但需要我像这样改变台词:
PacmanRules.getLegalActions(self)
对于这样的线条:
pacman_rules.PacmanRules.getLegalActions(self)
这让我觉得很混乱,而且似乎违背了导入类名的目的,这样我就可以使用它,而不必在它前面加序
但是,事实证明,这也行不通。这只是得到一个不同的错误:
ImportError: cannot import name pacman_rules
这就是我的问题。大多数问题似乎都围绕着如何解决这个问题;事实证明,我甚至没有一个“补丁”
我很好奇的是,为什么最初的方法不起作用(特别是因为PyCharm生成了它),以及我提出的解决方案是否适合处理这个问题
目前没有回答
相关问题 更多 >
编程相关推荐