[英]Importing modules from different directories
我在导入模块时遇到问题:该模块位于./dao
目录下,而调用该模块的代码位于./core
。 示意图表示为:
rnaspace/
__init__.py
core/
__init__.py
logger.py
dao/
__init__.py
storage_configuration_reader.py
这是错误消息:
Traceback (most recent call last): File "logger.py", line 21, in <module>
from rnaspace.dao.storage_configuration_reader import storage_configuration_reader ImportError: No module named rnaspace.dao.storage_configuration_reader
该文件位于/rnaspace/dao/storage_configuration_reader.py
并且在同一文件夹中的__init__.py
文件如下:
""" Package dao
Gathers files that access to the plateform data
"""
如果我很好地理解了这个问题 ,它应该可以工作。 我认为问题在于一个目录不是另一个目录的子目录(或者该路径不是一个目录的子目录),有办法解决吗? 还是需要对这个问题应用解决方案?
编辑 rnaspace文件夹的__init__.py
文件:
import rnaspace.dao.storage_configuration_reader as scr
def update_conf(conf_path, predictors_conf_dir):
scr.update_conf(conf_path, predictors_conf_dir)
from rnaspace.dao.storage_configuration_reader import storage_configuration_reader
这是错误的,因为“ dao”目录中没有“ storage_configuration_reader”目录
这应该是这样的:
from rnaspace.dao import storage_configuration_reader
编辑:
或者这样:
import rnaspace.dao.storage_configuration_reader
我终于在另一个问题中找到了解决方案,它正在使用模块imp。
我只需要添加模块的名称及其所在的绝对路径即可:
imp.load_source("storage_configuration_reader","./rnaspace/dao/storage_configuration_reader.py")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.