我的项目中有多个模块,并指定了一些执行点。但是当我尝试从子模块导入文件时,它不起作用。
那么,如何指定要从所选执行文件执行的子模块?
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
答案 0 :(得分:1)
我找到了解决方案。 我认为问题在于使用 init .py。 我把可执行脚本放在包含的路径中,并且工作正常
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)))
答案 1 :(得分:0)
您要导入的所有模块都应该在您的PYTHONPATH中。因此没有等级制度。
在您的情况下,在我看来项目的主文件夹(包含所有模型)中缺少__init__.py
,因此executefile不知道您的模块。
答案 2 :(得分:0)
所以你在定义相对路径方面遇到了麻烦,对吗?请尝试以下方法:
from sys import path
path.append('C:\\realative_path')
from function_file import required_function
希望有所帮助。