为了账号安全,请及时绑定邮箱和手机立即绑定

如何从具有相同名称的不同模块加载不同的功能

如何从具有相同名称的不同模块加载不同的功能

PIPIONE 2022-07-05 15:58:09
我有以下结构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


查看完整回答
反对 回复 2022-07-05
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信