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

时间:2017-09-27 05:03:36

标签: python module path python-import keyerror

我试图从不同的目录级别导入模块,因此我使用了:

    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&#39 ;)

     

文件" C:\ Users \ nrshakya \ AppData \ Local \ Continuum \ Anaconda3 \ lib \ site-packages \ spyder \ utils \ site \ sitecustomize.py",第880行,在runfile中       execfile(filename,namespace)

     

文件" C:\ Users \ nrshakya \ AppData \ Local \ Continuum \ Anaconda3 \ lib \ site-packages \ spyder \ utils \ site \ sitecustomize.py",102行,在execfile中       exec(compile(f.read(),filename,' exec'),命名空间)

     

文件" C:/Users/nrshakya/Documents/CI/src/Comp_IntelPython/ci_search_project_test.py",第8行,在模块中       来自source.search.ci_search_project import CI_Search_Project

     

文件"冻结了importlib._bootstrap",第961行,在_find_and_load

     

文件"冻结了importlib._bootstrap",第946行,在_find_and_load_unlocked中

     

文件"冻结了importlib._bootstrap",第885行,在_find_spec

     

文件"冻结了importlib._bootstrap_external",第1157行,在find_spec中

     

文件"冻结了importlib._bootstrap_external",第1123行,在_get_spec中

     

文件"冻结了importlib._bootstrap_external",第994行, iter

     

文件"冻结了importlib._bootstrap_external",第982行,在_recalculate

     

文件"冻结了importlib._bootstrap_external",第978行,在_get_parent_path

     

KeyError:' source'

1 个答案:

答案 0 :(得分:1)

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