我的项目路径如下:
main.py
modules/
__init__.py
databaseManager.py
sync.py
excel.py
在主.py地址:
from modules.databaseManger import addExcelToDb, searchInDbAll
from modules.excel import search, showExcelDirContents
from modules.sync import syncExcelAndDB
例如在数据库.py地址:
from modules.excel import showExcelDirContents
from modules.sync import insertExcelNameToSyncDb
但当我跑的时候主.py我得到这个错误:
Traceback (most recent call last):
File "main.py", line 6, in <module>
from modules.databaseManger import searchIn
ImportError: cannot import name 'searchInDbAll'
在尝试将函数从modules目录中的每个文件导入到其他文件时也会出错。你知道吗
我需要一些import
的例子。你知道吗
这是循环导入问题。你知道吗
说明:
首先触发
databaseManager
模块的导入。你知道吗在此期间,
databaseManager
代码开始导入excel
。你知道吗在
excel
导入期间,excel
代码尝试从databaseManager
检索函数searchInDbAll()
。但此时这个函数并不存在,因为databaseManager
正在导入excel
,他还没有开始定义任何函数。你知道吗如何修复:
在存在循环导入冲突的模块中,导入模块而不是函数。例如,更改以下内容:
对此:
当然,然后必须将相应的函数调用从
showExcelDirContents()
更改为excel.showExcelDirContents()
。你知道吗必须在
databaseManger
、excel
和sync
模块中执行此操作。有了这个补丁,我就可以运行你的代码了。你知道吗是的,去掉附件搜索路径,这是错误的
您可以在路径中附加模块,如下所示:
或者
注意这些是正斜杠,也可以使用双反斜杠,如\ \
那就吃你的吧数据库管理器.py文件输入/模块
您还需要在/modules文件夹中有一个名为:
只是一个空文件
那么你应该能够做到:
from databaseManger import addExcelToDb, searchInDbAll
相关问题 更多 >
编程相关推荐