私は Python をまったく使い慣れていないので、この質問が何度も聞かれていることは知っていますが、残念ながら私の状況は少し違うようです... パッケージを作成しました (そう思います)。カタログ ツリーは次のようになります。
mydir
lib (__init__.py)
mod1 (__init__.py, mod11.py)
括弧内はカタログ内のファイルです。両方の__init__.py
ファイルの長さはゼロです。
ファイルmydir/lib/mod1/mod11.py
には次の内容が含まれています。
def mod12():
print "mod12"
ここで、 を実行してから を実行するpython
とimport lib
、問題なく動作します。その後、lib.mod11()
または を実行しますlib.mod12()
。
最後の 2 つのうちのどちらかを実行すると、件名のエラー メッセージが表示されます。実際には、手順 2 以降はどちらもdir(lib)
表示されません。非常に単純なことを見逃しているようです。mod11
mod12
(Ubuntu 10.10でPython 2.6を使用しています)
ありがとう
ベストアンサー1
を実行するとimport lib
、パッケージがインポートされます。この場合、評価されて実行されるファイルは、__init__.py
lib ディレクトリの 0 バイトのみです。
関数にアクセスしたい場合は、次のようにして関数をfrom lib.mod1 import mod1
実行します。mod12
mod1.mod12()
mod1
インポート時にアクセスできるようにするには、ディレクトリ内のファイル内にlib
を配置する必要があります。import mod1
__init__.py
lib