
Я портирую свое приложение Python с Python 2 на Python 3. Поскольку Python-3 предоставляет утилиту 2to3
, которая преобразует код Python-2 в Python-3.
import builtins
выдает ошибку
ImportError: No module named builtins
Есть идеи, как решить эту проблему?
решение1
Решил похожую ошибку в другой ситуации установкой пакета 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