2017-09-26 109 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'只有'lists'和'dicts',比如'USERS' –

回答

0

即使文件爲空,導入的目錄也需要__init__.py文件。這是Python解釋器可以識別它是一個模塊,因此是可導入的。

+0

它有一個。忘了把這個問題,現在編輯。 –

0

看一看這個答案:

Importing files from different folder

我想你已經找到了解決辦法,你只要把要在其中您在module1.py放在dir2/__init__.py代碼和所有其他模塊使用dir1中的文件。

據我所知,__init__.py文件僅用於python識別文件夾,但不適用於項目的實際初始化代碼。