ImportError: Brak wbudowanych modułów o nazwie


8

Przenoszę moją aplikację Python z Pythona 2 do Pythona 3. Ponieważ python-3 zapewnia narzędzie do 2to3konwersji kodu python-2 na python-3. import builtins dając błąd jako

ImportError: No module named builtins

Masz pomysł, aby rozwiązać ten problem?

Odpowiedzi:


11

Rozwiązano podobny błąd w osobnej sytuacji, instalując pakiet future.

sudo pip install future

Nie jest jasne, czy błąd występuje podczas uruchamiania 2to3 lub podczas próby uruchomienia wynikowego kodu. Jeśli tak jest przy uruchomieniu 2to3, prawdopodobnie jest tak, ponieważ faktycznie używa python2(domyślnie), a zatem jeśli go nie zainstalowałeś future, builtinsbędzie go brakować. Podobnie python2może wystąpić próba uruchomienia wynikowego kodu z tym samym błędem.


2

2to3Narzędzie generuje kod zgodny z Python 3-only.

Prawdopodobnie to widzisz, ponieważ konwertujesz kod w Pythonie 2.

Jeśli chcesz, aby Twój kod był zgodny z Python 2 i 3, możesz to zrobić w zamian:

try:
    import builtins
except ImportError:
    import __builtin__ as builtins
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.