我只是想提请更多注意Doppelganger自己对他的问题的回答。我有这个错误,情况是这样的:
您正在尝试从名为“strategy.py”的模块中导入函数/类 X。
不幸的是,您还创建了一个名为 strategy 的 python 包目录,换句话说,您有一个名为“strategy”的目录,在“strategy”目录中至少有一个名为“____init___.py”的文件。
root folder\
strategy.py (contains function/class called X)
strategy\
__init__.py
然后,您忘记了您已经创建了 python 包目录这一事实,并尝试导入strategy.py
在“根”目录中的文件中定义的某些类或函数,如下所示
from strategy import X
然后你得到的是Python error: ImportError: cannot import name X
错误。
正如 Doppelganger 所指出的,实际问题是 python 解释器优先考虑您创建的包目录,并在包目录中搜索名为 X 的 FILE/MODULE ,并忽略实际的 modulestrategy.py
和 function/class X其中,您实际上正在寻找。
如果您阅读有关 python 包的文档,这正是您所期望和想要的,但是如果您像我一样中途改变主意,您最终可能会摸不着头脑。