2017-09-26 107 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识别文件夹,但不适用于项目的实际初始化代码。