2017-09-26 4 views
0
dir1\ 
    __init__.py 
    config.py 

dir2\ 
    __init__.py 
    module1.py 

から__init__.py内部config.pyのインポート、私はのはdir1を言わせて、ファイルconfig.pyを持っています。私はdir2には、メインのPythonファイルがあります。は敏感なコンフィグ設定を保護するために、別のディレクトリ

dir2のすべてのモジュールがconfig.pyにアクセスできるようにします。だから私はそれを__init__.pyの中に入れて、dir2の中に入れようと考えました。

どうすればよいですか?私はdir2__init__.py内にこれを入れてみました:

# __init__.py in dir2 

import os 
import sys 

config_dir = os.path.join(os.environ['userprofile'],'Path','To','dir1') 
sys.path.append(config_dir) 

from dir1 import config 

私はmodule1.py

# module1.py 
from config import USERS 

でこれを置くが、私はmodule1を実行したときに私が手:

ModuleNotFoundError: No module named 'config'を。

+0

config.pyはオブジェクトを定義していますか?また、同じディレクトリにconfig.pyを使ってやってみましたか? –

+0

'config.py'は' USERS'のような 'lists'と' dicts'しか持っていません –

答えて

0

インポートのあるディレクトリには、空の場合でも__init__.pyファイルが必要です。これは、Pythonインタプリタがモジュールであることを認識してインポートできるようにするためです。

+0

これは1つです。それを質問に入れるのを忘れて、今編集するでしょう。 –

0

この回答を見てください:

Importing files from different folder

私はあなたがすでに解決策を見つけ、あなたはちょうどあなたが先にあなたがmodule1.pydir2/__init__.pyに置かれたコードと他のすべてのモジュールを入れて持っていると思いますdir1からのファイルを使用する。

私が理解する限り、__init__.pyファイルは、プロジェクトの実際の初期化コードではなく、フォルダを認識するためのものです。

関連する問題