我在导入模块时遇到问题:
它位于此目录./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
"""
如果我理解得很清楚this question,它应该有效。我认为问题在于,一个不是另一个的子目录(或者路径不是那个路径),有办法解决它吗?或者我需要将解决方案应用于this question?
修改
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)
答案 0 :(得分:0)
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
答案 1 :(得分:0)
我终于在另一个question中找到了解决方案,它正在使用模块imp。
我只需要添加模块的名称,以及它的绝对路径:
imp.load_source("storage_configuration_reader","./rnaspace/dao/storage_configuration_reader.py")