我正在尝试组织我的项目,以下是项目的层次结构:
-Project
--core
|--__init__.py
|--module_1.py
|--module_2.py
--env1
|--env1.py
--env2
|--env2.py
该项目具有多个环境,并且所有人都共享核心目录中的模块。我正在尝试从function1
和module1
中的env1.py
导入env2.py
:
from core.module_1 import function1
我遇到以下错误:
ModuleNotFoundError: No module named 'core'
我也尝试设置核心目录的路径,但是没有运气。如果模块与调用它的脚本位于同一目录中,或者如果调用该模块的脚本位于主目录中(在我的情况下为import
),则Project
起作用。如何将模块从core
目录导入到环境目录?
答案 0 :(得分:2)
上个星期,您遇到了完全相同的问题,一直困扰着我。这是我的最终版本。如果这以某种方式创建了时间机器,那么请在上周将该功能发送给我,是吗?
def load_function(filepath,func_name) -> "function":
"""Load any function from a given path to a .py script."""
return getattr(__import__(filepath,fromlist=[func_name]),func_name)