ImportError: нет модуля с именем встроенного


8

Я портирую свое приложение на python с python 2 на python 3. Поскольку python-3 предоставляет утилиту, 2to3которая преобразует код python-2 в python-3. import builtins давая ошибку как

ImportError: No module named builtins

Есть идеи, чтобы решить эту проблему?

Ответы:


11

Решил аналогичную ошибку в отдельной ситуации, установив пакет future.

sudo pip install future

Не ясно, если ваша ошибка возникает при запуске 2to3 или при попытке запустить полученный код. Если это происходит при запуске 2to3, скорее всего, потому что он на самом деле использует python2(по умолчанию) и, следовательно, если вы не установили future, builtinsбудет отсутствовать. Аналогичным образом, если вы пытаетесь запустить полученный код с python2той же ошибкой, может произойти.


2

2to3Инструмент генерирует код , совместимый с Python 3-только.

Вы, вероятно, видите это, потому что запускаете преобразованный код в Python 2.

Если вы хотите, чтобы ваш код был совместим с Python 2 и 3, вы можете сделать это вместо этого:

try:
    import builtins
except ImportError:
    import __builtin__ as builtins
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.