我试图运行的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的原因是什么?
1条答案
按热度按时间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上发布一个补丁,这样每个人都可以受益。有关如何发布补丁的详细信息,请参阅手册。