Python エラー: AttributeError: 'module' オブジェクトに属性がありません 質問する

Python エラー: AttributeError: 'module' オブジェクトに属性がありません 質問する

私は Python をまったく使い慣れていないので、この質問が何度も聞かれていることは知っていますが、残念ながら私の状況は少し違うようです... パッケージを作成しました (そう思います)。カタログ ツリーは次のようになります。

mydir
    lib   (__init__.py)
        mod1  (__init__.py, mod11.py)

括弧内はカタログ内のファイルです。両方の__init__.pyファイルの長さはゼロです。

ファイルmydir/lib/mod1/mod11.pyには次の内容が含まれています。

def mod12():
    print "mod12"

ここで、 を実行してから を実行するpythonimport lib、問題なく動作します。その後、lib.mod11()または を実行しますlib.mod12()

最後の 2 つのうちのどちらかを実行すると、件名のエラー メッセージが表示されます。実際には、手順 2 以降はどちらもdir(lib)表示されません。非常に単純なことを見逃しているようです。mod11mod12

(Ubuntu 10.10でPython 2.6を使用しています)

ありがとう

ベストアンサー1

を実行するとimport lib、パッケージがインポートされます。この場合、評価されて実行されるファイルは、__init__.pylib ディレクトリの 0 バイトのみです。

関数にアクセスしたい場合は、次のようにして関数をfrom lib.mod1 import mod1実行します。mod12mod1.mod12()

mod1インポート時にアクセスできるようにするには、ディレクトリ内のファイル内にlibを配置する必要があります。import mod1__init__.pylib

おすすめ記事