从不同的目录
问题描述:
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'
。
答
即使文件为空,导入的目录也需要__init__.py
文件。这是Python解释器可以识别它是一个模块,因此是可导入的。
+0
它有一个。忘了把这个问题,现在编辑。 –
答
看一看这个答案:
Importing files from different folder
我想你已经找到了解决办法,你只要把要在其中您在module1.py
放在dir2/__init__.py
代码和所有其他模块使用dir1中的文件。
据我所知,__init__.py
文件仅用于python识别文件夹,但不适用于项目的实际初始化代码。
config.py是否定义了一个对象?你有没有尝试过在同一个目录下使用config.py? –
'config.py'只有'lists'和'dicts',比如'USERS' –