访问属于父目录的模块或python中模块的兄弟模块

时间:2015-03-25 17:28:42

标签: python python-module

我已经浏览了所有与此相关的主题,但找不到我的问题的答案。

我有以下目录结构

--Codes +------mod_welch.py +------__init__.py +------Toy_Model ++---------__init__.py ++---------linear_filter.py

两个__init__.py都是空的,我试图访问linear_filter.py正文中的mod_welch.py​​但没有成功。当我想使用上层文件夹的实际访问时 from ..mod_welch import welch其中welch是mod_welch我收到的函数:

ValueError: Attempted relative import in non-package 

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在genereal中,你的模块应该import - 在某处然后使用。您收到的错误消息表明存在模块代码的异常执行方法。我怀疑你是通过runnig python linear_filter.py测试你的代码(它给出了同样的错误)。不是那样的。

如上所述,如果要测试其功能,则需要实际使用模块。为此,您可以在另一个模块或主脚本中import模块,例如:

from Codes.Toy_Model.linear_filter import some_method
if __name__ == '__main__':
    print(some_method())

some_method中将linear_filter.py定义为:

from Codes.mod_welch import welch
def some_method()
    welch()

如果情况并非如此,那么请提供有关模块的使用(执行)方法的更多信息 - 您正在运行哪个脚本以及如何运行。任何sys.path.append魔法等也很重要。