ImportError: Kein Modul mit dem Namen Builtins

ImportError: Kein Modul mit dem Namen Builtins

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, builtinswenn Sie versuchen, den resultierenden Code auszuführen .python2

Antwort2

Das 2to3Tool 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

verwandte Informationen