2

次のような Python 2.7 プロジェクトがあります。

私のプロジェクト\

- __init__.py
- __main__.py
- foo.py

PEP 8 で必要な絶対インポートを使用したいのですが、これを__main__.pyで実行しようとすると:

from myproject.foo import bar

python -m myproject

私は得る:

ImportError: myproject.foo という名前のモジュールがありません

私は何を間違っていますか?

4

2 に答える 2

2

もう少しグーグルで調べてみると次のように追加するだけで済みました。

from __future__ import absolute_import

これにより、Python 3 の将来の保証が追加されます。PyDev はこの方法ではモジュールを見つけることができないことに注意してください。そのために別の質問を開きます。

于 2013-09-30T14:03:57.587 に答える
1

それが機能するにmyprojectは、Python パス上にある必要があります。PYTHONPATH変数を設定することで外部的に、または に追加することでプログラム内でそれを行うことができますsys.path

( 以外に二重アンダースコアの名前を使用する規則はないことに注意してください__init__.py。あなたの__main__.py名前は非常に奇妙に思えます。)

于 2013-09-30T13:14:57.793 に答える