导入 python 模块时如何解决 KeyError?

Posted

技术标签:

【中文标题】导入 python 模块时如何解决 KeyError?【英文标题】:How do I solve a KeyError when importing a python module? 【发布时间】:2018-03-08 11:12:51 【问题描述】:

我试图从不同的目录级别导入一个模块,所以我使用了:

    import os
    import sys
    sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

但现在我得到了这个错误。我正在使用 Spyder,并且第一次使用以下导入时,它工作正常。

   from source.search.ci_search_project import CI_Search_Project

从我第二次收到此错误开始。

模块中的文件“ipython-input-29-f35dfe634c32”,第 1 行 runfile('C:/Users/nrshakya/Documents/CI/src/Comp_IntelPython/ci_search_project_test.py', wdir='C:/Users/nrshakya/Documents/CI/src/Comp_IntelPython')

文件“C:\Users\nrshakya\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py”,第 880 行,在运行文件中 execfile(文件名,命名空间)

文件“C:\Users\nrshakya\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py”,第 102 行,在 execfile exec(编译(f.read(),文件名,'exec'),命名空间)

文件“C:/Users/nrshakya/Documents/CI/src/Comp_IntelPython/ci_search_project_test.py”,第 8 行,在模块中 从 source.search.ci_search_project 导入 CI_Search_Project

文件“冻结 importlib._bootstrap”,第 961 行,在 _find_and_load 中

文件“frozen importlib._bootstrap”,第 946 行,在 _find_and_load_unlocked 中

文件“冻结 importlib._bootstrap”,第 885 行,在 _find_spec 中

文件“冻结 importlib._bootstrap_external”,第 1157 行,在 find_spec 中

文件“冻结的 importlib._bootstrap_external”,第 1123 行,在 _get_spec 中

文件“frozen importlib._bootstrap_external”,第 994 行,在 iter

文件“冻结 importlib._bootstrap_external”,第 982 行,在 _recalculate 中

文件“冻结 importlib._bootstrap_external”,第 978 行,在 _get_parent_path 中

KeyError: '来源'

【问题讨论】:

请贴出重现问题所需的代码! 我将它添加到主要问题中。这只是一个导入: from source.search.ci_search_project import CI_Search_Project 有人找到解决办法了吗?我遇到了同样的问题。 【参考方案1】:

According to Vera's answer to their question,在包含该模块的文件夹中添加一个空的__init__.py 文件将解决此问题。

【讨论】:

以上是关于导入 python 模块时如何解决 KeyError?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在我导入模块时 Python 会运行我的模块,如何停止它?

在 Pig 中使用 Python UDF 时,如何让 Hadoop 查找导入的 Python 模块?

python导入pypdf2模块后没有提示

当***模块及其子模块之一作为单独版本单独导入时,如何解决冲突的 go 模块依赖关系?

Python中import导入上一级目录模块及循环import问题的解决

在 Python 中从导入的模块导入时输出 [重复]