2016-11-08 7 views
0

.pyモジュールはC:\Python_Projects\MyModules\で、名前はbutton_generator.pyです。私はaswell他のバージョンを試してみましたimportlib.import_moduleは、パラメータがabsパスであってもモジュールをインポートしません

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' 

  • importlib.import_module(モジュール名)スプリット
  • importlib.import_module( 'Cなし

    私のコードは次のようになります: \ Python_Projects \ MyModules \ button_generator.py ')

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

C:\Python_Projects\MyModulesは、デバッグ時に確認したところ、私のsys.pathにあります。

モジュールがインポートされないのはなぜですか?

+0

'import button_generator'を実行すればどうなりますか?例外をキャッチしてそれを投げ捨てるのではなく、それを何と言うのでしょうか? –

答えて

1

プロジェクトディレクトリの順序を変更し、現在のディレクトリプロジェクトにない他のモジュールの呼び出しを避けることをお勧めします。あなたはそのような種類のエラーを避けるでしょう。例えば

、のは、このような何かを見て私たちのプロジェクトのディレクトリやフォルダを整理してみましょう:

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

NB:__init__.py

MyLib.pyと呼ばれる空のファイルを追加することを忘れないでください。 :

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

:それの引数を印刷してはImportError例外を処理した後

を、私はbutton_generator.pyが解決されなかったのインポートを持っていたことに気づきました。基本的にbutton_generator.pyはインポートが間違っていたためインポートできませんでした。

+0

あなたのために素晴らしい! –

関連する問題