我已经浏览了所有与此相关的主题,但找不到我的问题的答案。
我有以下目录结构
--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
我做错了什么?
答案 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
魔法等也很重要。