2

モジュールのインポートに問題があります。私が使用する場合、

 import fruit as f
 print f.apple.juice.CALORIES_INT

これは機能します。と

 import fruit.apple.juice as j
 print j.CALORIES_INT

うまくいきません。投げAttributeError: 'module' object has no attribute 'apple'ます。それをデバッグする方法について何か提案はありますか?

私のディレクトリ構造は次のようになります。

fruit  
--- __init__.py  
--- apple  
---------__init__.py  
--------- juice.py  
---------------CALORIES_INT is a variable declared here  
--- orange  
--------- __init__.py  
--------- shake.py  
---------------trying to access CALORIES_INT here by importing it. 

リンゴはパッケージです。ただし、他のパッケージをインポートできます。

4

2 に答える 2

0

パッケージfrom . import apple__init__.pyファイルに追加する必要があります。または、同じ場所でfruit使用することもできます。from fruit import apple

ネストされたパッケージは、親パッケージの属性として自動的に使用可能になるわけではありません。これは、ネストされたパッケージを明示的にインポートした後にのみ機能します。

最初に を実行するimport fruit.appleと、import fruit; fruit.apple動作します。appleまたは、ネストされたパッケージをfruit/__init__.pyファイルに明示的にインポートして、パッケージimport fruit; fruit.appleのユーザーに対して常に機能するようにしますfruit

同じことがパッケージ内のjuiceモジュールにも当てはまります。パッケージappleにインポートして利用可能にする必要があります。を追加するか、のような絶対インポートを使用します。apple__init__.pyfrom . import juicefrom fruit.apple import juice

于 2013-02-08T10:53:59.110 に答える
0

試す:

 from fruit.apple import juice as j
于 2013-02-08T10:54:03.773 に答える