Ошибка импорта: невозможно импортировать имя get_importer

Я пытаюсь запустить сценарий scanpypi - сценарий поддержки Buildroot (2017.02), но получаю ошибку ImportError: невозможно импортировать имя get_importer.

Отслеживание (последний вызов последним): файл "./support/scripts/scanpypi", строка 52, в файле import setuptools "/usr/local/lib/python2.7/dist-packages/setuptools/ init .py ", строка 12, в файле import setuptools.version" /usr/local/lib/python2.7/dist-packages/setuptools/version.py ", строка 1, в файле import pkg_resources" / usr / local /lib/python2.7/dist-packages/pkg_resources/<▪init .py ", строка 40, из pkgutil import get_importer ImportError: невозможно импортировать имя get_importer

Я добавил следующие строки в начало скрипта scanpypi, чтобы увидеть sys.path

  • import sys
  • печать (sys.path)

выход:

['/ home / timo / bldr_lab / buildroot / support / scripts', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/ usr / библиотеки / 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?


person TimoV    schedule 19.03.2017    source источник
comment
Что произойдет, если вы python -c 'import pkgutil; print(pkgutil.__file__)?   -  person Anthony Sottile    schedule 20.03.2017
comment
У меня тоже возникла эта проблема. Я пробовал отлаживать его с помощью pudb, но в отладчике он работает как шарм. Я пробовал scanpypi на разных дистрибутивах Linux, и все они ведут себя одинаково.   -  person yegorich    schedule 20.03.2017


Ответы (1)


Это ошибка в Buildroot. Это связано с фиксацией 12683184b1969f65680cb7db55b547a620a9860f, которая представила файл pkgutil.py в support / scripts. Это конфликтует с pkgutil.py из setuptools.

Решение состоит в том, чтобы переименовать файл pkgutil.py во что-нибудь другое и соответствующим образом обновить импорт в других скриптах. Если вы это сделаете, разместите исправление в списке рассылки Buildroot, чтобы каждый мог выгода. См. руководство для получения подробной информации о том, как размещать исправления.

person Arnout    schedule 20.03.2017
comment
Спасибо за информацию. Я действительно заметил, что pkgutil.py сегодня утром находится в папке support / scripts. Я переименовал его, и скрипт scanpypi начал работать, как ожидалось. - person TimoV; 20.03.2017
comment
Я просто ушел, а потом подумал, почему pkgutil.py был в папке, но теперь я знаю. Почему-то я думаю, что сообщение об ошибке было бы правильным способом решить проблему - я немного не хочу прикасаться к чужому коду. В любом случае, я попробую посмотреть на это позже сегодня. - person TimoV; 20.03.2017