我也看到过许多类似的错误,但我看不出一个适用于我的特定问题的解决方案。
我试图使用PYTHONPATH上的Akismet module,然后如果启动交互式解释器,当我运行from akismet import Akismet
(正如docstring所说)时,会得到以下错误:
from akismet import Akismet
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name Akismet
检查您的PYTHONPATH是否真的如您所期望的那样,例如在交互式控制台中执行此操作:
akismet.py真的在这些文件夹中吗?
我只想引起更多的注意,多佩尔冈格自己对他的问题的回答。我犯了个错误,情况是:
您正试图从一个称为“strategy.py”的模块中导入函数/类X。
不幸的是,您还创建了一个名为strategy的python包目录,换言之,您有一个名为strategy的目录,其中至少有一个文件位于strategy目录下,名为'uuuuuuuuinit'.py'。
然后,您忘记了创建python包目录的事实,并尝试导入在根目录中的文件
strategy.py
中定义的一些类或函数,如下所示from strategy import X
然后得到的是
Python error: ImportError: cannot import name X
错误。正如Doppelganger所指出的,实际的问题是python解释程序优先于您创建的包目录,并在包目录中搜索名为X的文件/模块,而忽略实际要查找的模块
strategy.py
,以及其中的函数/类X。如果您阅读了关于python包的文档,这正是您所期望和想要的,但是如果您像我一样中途改变了主意,您可能最终会挠头。
如果您的PYTHONPATH设置正确且全局性良好(只需自己测试它),那么它将完美工作。
相关问题 更多 >
编程相关推荐