2016-03-29 6 views
0

__init__.pyからインポート変数を取り込むことができない問題が発生しています。私は私の問題をgoogleしかし、私は理解できないすべての答えを見つけることができません。サブモジュールからdjangoの__init__.pyを通して変数をインポート

私のモジュール構造は、次のとおりです。私のファイルに

my_module/ 
    __init__.py 
    sub_module/ 
     __init__.py 
     module_file.py 

内容は次のとおりです。

# my_module/__init__.py 
from sub_module.module_file import show_variable 

# sub_module/module_file.py 
show_variable = "string needs to display" 

しかし、私はsub_moduleから

from my_module import show_variable 

それを変数にアクセスしようとすると、エラー

ImportError: cannot import name show_variable 

__init__.pyファイルで変数にアクセスする方法はありますか? あなたの貴重な応答を待っています。ありがとうございます

+0

uエラーは、あなたがshow_variableでないcontent_variableをインポートしようとしていると言いました。 – levi

+0

あなたは 'module_file import show_variable'を意味しませんか? – rnevius

+0

私は '__init __。py'からインポートするときに関数にアクセスできます。私はそのような変数にアクセスできません。 – Simplans

答えて

0

あなたの例は動作するはずです。

これは(2.7.6)私の作品:

# my_module/__init__.py 
from sub_module.module_file import show_variable 

# my_module/sub_module/__init__.py (empty) 

# my_module/sub_module/module_file.py 
show_variable = 'string needs to display' 

# main.py 
from my_module import show_variable 
print show_variable 

my_moduleの親ディレクトリから:

>>> from my_module import show_variable 
>>> print show_variable 
string needs to display 

あなたはまた、変動のためにこれを試すことができます。

# my_module/__init__.py 
from sub_module import show_variable 

# my_module/sub_module/__init__.py 
from .module_file import show_variable 

Djangoであなたのパッケージをどのようにセットアップしたのかというと、 my_moduleパッケージを基準にmy_moduleをロードするファイルはどこにありますか?

これまで、1つのモジュールを複数のファイルを持つパッケージにリファクタリングして置き換えながら置き換えました。

関連する問題