Dop*_*ger 12 python environment-variables python-import
我见过很多类似的错误,但我看不到适用于我的特定问题的解决方案.
我正在尝试使用我的PYTHONPATH上的Akismet模块,然后如果我启动交互式解释器,当我运行时 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
Run Code Online (Sandbox Code Playgroud)
dav*_*zen 15
我只是想更多地关注Doppelganger自己对他的问题的回答.我有这个错误,情况是这样的:
您正尝试从名为'strategy.py'的模块导入函数/类X.
不幸的是,你还创建了一个名为strategy的python包目录,换句话说,你有一个名为'strategy'的目录,目录'strategy'中至少有一个名为'____init___.py'的文件.
root folder\
strategy.py (contains function/class called X)
strategy\
__init__.py
Run Code Online (Sandbox Code Playgroud)
然后你忘记了你已经创建了python包目录的事实,并尝试导入strategy.py
'root'目录中的文件中定义的一些类或函数,就像这样
from strategy import X
你得到的是Python error: ImportError: cannot import name X
错误.
正如Doppelganger所说,实际问题是python解释器优先于你创建的包目录,并在包目录中搜索名为X的FILE/MODULE,并忽略实际模块strategy.py
和函数/类X.其中你真的在寻找.
如果你阅读python包的文档,这正是你所期望和想要的,但如果你像我一样改变主意,你可能最终会摸不着头脑.
如果您的PYTHONPATH设置正确且全局(仅我自己测试),它将完美地工作.