如何从相对路径导入子模块?
How to import submodules from relative path?
我的项目中有多个模块并指定了一些执行点。但是当我尝试从子模块导入文件时,它不起作用。
那么,如何从选定的执行文件中指定要执行的子模块?
project
--bin
---- executeFile
--modules
---- __init__.py
----fileA.py
在executeFile
,我尝试:
from ..modules.fileA import *
但出现错误:
Traceback (most recent call last):
File "./bin/muexecute", line 10, in <module>
from ..modules.os import *
SystemError: Parent module '' not loaded, cannot perform relative import
您要导入的所有模块都应该在您的 PYTHONPATH 中。因此没有等级制度。
在你的情况下在我看来你的项目的主文件夹(包括所有模型)中缺少一个 __init__.py
,所以 executefile 不知道你的模块。
所以您在定义相对路径时遇到了问题,对吗?请尝试以下操作:
from sys import path
path.append('C:\realative_path')
from function_file import required_function
希望对您有所帮助。
我找到了解决方案。
在我看来,问题在于使用 init.py。
我将可执行脚本路径放入 including 中,它工作正常
PACKAGE_PARENT = '..'
SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))
我的项目中有多个模块并指定了一些执行点。但是当我尝试从子模块导入文件时,它不起作用。
那么,如何从选定的执行文件中指定要执行的子模块?
project
--bin
---- executeFile
--modules
---- __init__.py
----fileA.py
在executeFile
,我尝试:
from ..modules.fileA import *
但出现错误:
Traceback (most recent call last):
File "./bin/muexecute", line 10, in <module>
from ..modules.os import *
SystemError: Parent module '' not loaded, cannot perform relative import
您要导入的所有模块都应该在您的 PYTHONPATH 中。因此没有等级制度。
在你的情况下在我看来你的项目的主文件夹(包括所有模型)中缺少一个 __init__.py
,所以 executefile 不知道你的模块。
所以您在定义相对路径时遇到了问题,对吗?请尝试以下操作:
from sys import path
path.append('C:\realative_path')
from function_file import required_function
希望对您有所帮助。
我找到了解决方案。 在我看来,问题在于使用 init.py。 我将可执行脚本路径放入 including 中,它工作正常
PACKAGE_PARENT = '..'
SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))