
Ich portiere meine Python-Anwendung von Python 2 auf Python 3. Da Python-3 ein Dienstprogramm bereitstellt 2to3
, das Python-2-Code in Python-3 konvertiert,
import builtins
wird der folgende Fehler ausgegeben
ImportError: No module named builtins
Irgendeine Idee, dieses Problem zu beheben?
Antwort1
Ein ähnlicher Fehler in einer anderen Situation wurde durch die Installation des Pakets behoben future
.
sudo pip install future
Es ist nicht klar, ob Ihr Fehler beim Ausführen von 2to3 oder beim Versuch, den resultierenden Code auszuführen, auftritt. Wenn er beim Ausführen von 2to3 auftritt, liegt dies wahrscheinlich daran, dass es tatsächlich python2
(die Standardeinstellung) verwendet und daher fehlt future
, wenn Sie nicht installiert haben. Ebenso kann derselbe Fehler auftreten, builtins
wenn Sie versuchen, den resultierenden Code auszuführen .python2
Antwort2
Das 2to3
Tool generiert Code, der nur mit Python 3 kompatibel ist.
Sie sehen das wahrscheinlich, weil Sie den konvertierten Code in Python 2 ausführen.
Wenn Ihr Code mit Python 2 und 3 kompatibel sein soll, können Sie stattdessen Folgendes tun:
try:
import builtins
except ImportError:
import __builtin__ as builtins