导入错误:无法导入名称 get_importer

Posted

技术标签:

【中文标题】导入错误:无法导入名称 get_importer【英文标题】:Import Error: cannot import name get_importer 【发布时间】:2017-08-11 01:32:08 【问题描述】:

我正在尝试运行 scanpypi 脚本 - Buildroot (2017.02) 的支持脚本,但我收到 ImportError: cannot import name get_importer。

Traceback(最近一次调用最后一次): 文件“./support/scripts/scanpypi”,第 52 行,在 导入设置工具 文件“/usr/local/lib/python2.7/dist-packages/setuptools/init.py”,第 12 行,在 导入 setuptools.version 文件“/usr/local/lib/python2.7/dist-packages/setuptools/version.py”,第 1 行,在 导入 pkg_resources 文件“/usr/local/lib/python2.7/dist-packages/pkg_resources/init.py”,第 40 行,在 从 pkgutil 导入 get_importer ImportError: 无法导入名称 get_importer

我在 scanpypi 脚本的开头添加了以下几行以查看 sys.path

导入系统 打印(sys.path)

输出:

['/home/timo/bldr_lab/buildroot/support/scripts', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', ' /usr/lib/python2.7/lib-tk'、'/usr/lib/python2.7/lib-old'、'/usr/lib/python2.7/lib-dynload'、'/usr/local/ lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

由于 pkgutil 在 /usr/lib/python2.7 目录中,问题不是路径问题。

我也卸载并重新安装了python2.7、pip和setuptools但没有帮助。

ImportError 可能是什么原因?

【问题讨论】:

如果你python -c 'import pkgutil; print(pkgutil.__file__)会发生什么? 我也遇到了这个问题。我尝试使用pudb 对其进行调试,但在调试器中它就像一个魅力。我在不同的 Linux 发行版上尝试过 scanpypi 并且都表现出相同的行为。 【参考方案1】:

这是 Buildroot 中的一个错误。这是由于提交 12683184b1969f65680cb7db55b547a620a9860f 在支持/脚本中引入了 pkgutil.py 文件。这与 setuptools 中的 pkgutil.py 冲突。

解决方案是将pkgutil.py 文件重命名为其他名称,并相应地更新其他脚本中的导入。如果您这样做,请在the Buildroot mailing list 上发布补丁,这样每个人都可以受益。有关如何发布补丁的详细信息,请参阅the manual。

【讨论】:

感谢您的信息。我实际上注意到今天早上“pkgutil.py”在 support/scripts 文件夹中。我重命名了它,然后 scanpypi 脚本开始按预期工作。 我刚离开然后想知道为什么 pkgutil.py 在文件夹中,但现在我知道了。不知何故,我认为报告错误将是解决问题的正确方法——我有点不愿意接触其他人的代码。无论如何,我会在今天晚些时候尝试看看这个。

以上是关于导入错误:无法导入名称 get_importer的主要内容,如果未能解决你的问题,请参考以下文章

Python 导入错误:无法从“sklearn.externals”导入名称“六”

高速公路无法导入名称错误

AWS Lambda python 错误:Runtime.ImportModuleError:无法导入模块“app”:无法从“pyparsing”导入名称“operatorPrecedence”

transifex 错误无法导入名称六

如何解决错误“无法从'serial'(未知位置)导入名称'serial'”?

为啥我在 Python 中收到错误消息“无法导入名称 NoneType”?