
私は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