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

s3fp2yjn  于 2023-05-16  发布在  Linux
关注(0)|答案(1)|浏览(170)

我试图运行的scanpypi脚本-支持脚本的Buildroot(2017.02),但我得到以下错误:

Traceback (most recent call last):
  File "./support/scripts/scanpypi", line 52, in <module>
    import setuptools
  File "/usr/local/lib/python2.7/dist-packages/setuptools/__init__.py", line 12, in <module>
    import setuptools.version
  File "/usr/local/lib/python2.7/dist-packages/setuptools/version.py", line 1, in <module>
    import pkg_resources
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 40, in <module>
    from pkgutil import get_importer
ImportError: cannot import name get_importer

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

- import sys
- print(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的原因是什么?

e0uiprwp

e0uiprwp1#

这是Buildroot中的一个bug。这是由于提交12683184 b1969 f65680 cb 7 db 55 b547 a620 a9860 f在support/scripts中引入了pkgutil.py文件。这与setuptools中的pkgutil.py冲突。
解决方案是将pkgutil.py文件重命名为其他文件,并相应地更新其他脚本中的导入。如果你这样做了,请在the Buildroot mailing list上发布一个补丁,这样每个人都可以受益。有关如何发布补丁的详细信息,请参阅手册。

相关问题