2012-05-28 8 views
5

Webで読むと、Python 2.7が絶対インポートをデフォルトとして使用するという約束があることに気付きました。しかし、そうではありません、我々はまだ私は私のコードは、一部のレガシー設定を使用しないすべてのモジュールでabsolute_importをデフォルトにする方法

from __future__ import absolute_import 

使用する必要があるようですので、私はすべてのモジュールが、これが有効になっていることを確認します。すべてのモジュールでこのステートメントを繰り返す必要はありません。

+0

漠然とした計画ではありません。 [Python 2.5の新機能](http://docs.python.org/whatsnew/2.5.html#pep-328-absolute-and-relative-imports)に「おそらく」と記載されています。 –

答えて

2

from __future__インポートは最初に実行する必要があり、モジュール固有です。あなたのすべてのモジュールにその行を実際に持たせることなく、すべてのモジュールのためにそれを有効にする簡単な方法はありません。

私はgrepを使用することができます(あなた自身のロールではない場合)でないことをあなたに教えてください。にその行があります。

難しいことをしたい場合は、importlibか、__import__のかわりに見てください。あなたは、.pyファイルを開く

from __future__ import absolute_import 

行(いない既に存在する場合)を挿入して、実際のインポートを行うことができますこれらの2つの方法のいずれかを使用します。しかし、あなた自身が他のモジュールにその行を追加しないように注意してください。相対的なインポートのセマンティクスを期待するモジュールから間違いなく間違いを得るでしょう。

関連する問題