首页 > 解决方案 > 无法从包中导入 python 模块

问题描述

我的项目路径是这样的:

main.py
modules/
     __init__.py
     databaseManager.py
     sync.py
     excel.py

在 main.py 中:

from modules.databaseManger import addExcelToDb, searchInDbAll
from modules.excel import search, showExcelDirContents
from modules.sync import syncExcelAndDB

例如在 database.py 中:

from modules.excel import showExcelDirContents
from modules.sync import insertExcelNameToSyncDb

但是当我运行 main.py 我得到这个错误:

Traceback (most recent call last):
 File "main.py", line 6, in <module>
   from modules.databaseManger import searchIn
ImportError: cannot import name 'searchInDbAll'

并且在尝试将模块目录中每个文件中的函数导入到其他文件时也会出错。

我需要一些importing 的例子。

标签: pythonimportpackage

解决方案


您可以附加到您放置模块的路径,如下所示:

import sys
sys.path.append('modules/')

或者

import sys
sys.path.append('c:/mycode/stuff/modules/')

请注意,这些是正斜杠,或者您可以使用双反斜杠,例如 \\

然后只需将您的 databaseManger.py 文件放在 /modules 中

您还需要在 /modules 文件夹中有一个文件,名为:

__init__.py

这只是一个空文件

然后你应该能够做到:

from databaseManger import addExcelToDb, searchInDbAll


推荐阅读