2016-11-08 114 views
0

我有我的.py模塊,它位於C:\Python_Projects\MyModules\,名稱爲button_generator.py即使參數是abs路徑,Importlib.import_module也不會導入模塊

我的代碼是這樣的:沒有分裂

  • importlib.import_module('C

    • importlib.import_module(MODULE_NAME):

      module_path='C:\\Python_Projects\\MyModules' 
      module_name='button_generator.py' 
      sys.path.append(module_path) 
      try: 
          limp=importlib.import_module(module_name.split('.')[0]) 
      except: 
          print 'module import error' 
      

      我已經試過藏漢其它版本: \'Python_Projects \ MyModules \ button_generator.py')

    • importlib.import_module('C:\ Python_Projects \ MyModules \ button_generator')

    文件夾C:\Python_Projects\MyModules是在我的sys.path中,因爲我在調試期間檢查。

    爲什麼模塊沒有導入?

  • +0

    如果你只是'輸入button_generator'會怎麼樣?另外,如果你發現異常而不是扔掉它,它說什麼? –

    回答

    1

    我建議你重新排序你的項目目錄,並避免調用不在當前目錄項目中的其他模塊。你會避免這種錯誤。

    例如,讓我們組織我們的項目目錄和文件夾,看起來像這樣:

    MyProjectFolder/ 
    ├── main.py 
    └── modules 
        ├── __init__.py 
        └── MyLib.py 
    

    NB:不要忘記添加一個名爲__init__.py

    MyLib.py一個空文件:

    #!/usr/bin/python3 
    
    class MyLib: 
        def __init__(self): 
         self.say_hello = "Hello i'm in modules/MyLib" 
    
        def print_say_hello(self): 
         print(self.say_hello) 
    

    main.py:

    #!/usr/bin/python3 
    
    # from folder.file import class 
    from modules.MyLib import MyLib 
    
    class MainClass: 
        def __init__(self): 
         my_lib = MyLib()   # load MyLib class 
         my_lib.print_say_hello() # access to MyLib methods 
    
    ### Test 
    if __name__ == '__main__': 
        app = MainClass() 
    

    在終端當我運行:

    $ python3 main.py 
    

    輸出:

    Hello i'm in modules/MyLib 
    

    所以在這裏我們已經成功地導入了類modules/MyLib.py成我們的main.py文件。

    0

    我發現了錯誤:

    通過打印它ARGS治療ImportError異常後,我注意到,button_generator.py有不是解決的導入。基本上,button_generator.py無法導入,因爲它有一個錯誤的導入。

    +0

    非常適合你! –

    相關問題