我有以下结构my_scripts group_A group_A1 main.py dbFunctions.py group_A2 main.py dbFunctions.py group_B scripting_Im_running_things_from.py dbFunctions.py我想从每个main.pys 中加载一个函数,并尝试使用sys.path.append. 但是因为我从 (group_B) 运行我的主脚本的文件夹也有dbFunctions.py,所以其他两个模型的函数(即group_A1\main.py和group_A2\main.py)都不能利用它们各自dbFunctions.py模块中的函数,所以我得到一个导入错误:ImportError: cannot import name 'my_function_in_groupA1_dbFunctions' from 'dbFunctions' (C:\my_scripts\group_B\dbFunctions.py)(我还尝试重命名group_B\dbFunctions.py并group_B\_dbFunctions.py添加group_A1andgroup_A2 到 sys.path 确实允许我从我选择从第一个导入的任何一个group_A1's 和group_A2's导入函数main.py ,但是对于第二个,不可能让它看起来第二个文件夹;因为它已经从给定的 加载了一个函数main.py,似乎没有其他main.py> 可以考虑。)是在所有文件夹中添加init.pys 还是可以通过使用来完成importlib?很抱歉没有创建一个可重现的例子,我不能这样做我相信这个问题。
1 回答
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
使用相对导入。例如:
# ../my_scripts/group_A/group_A1/main.py
# Import foo from ../my_scripts/group_A/group_A1/dbFunctions.py
from .dbFunctions import foo
# Import bar from ../my_scripts/group_A/group_A2/dbFunctions.py
from ..group_A2.dbFunctions import bar
# Import baz from ../my_scripts/group_B/dbFunctions.py
from ...dbFunctions import baz
添加回答
举报
0/150
提交
取消