1

importlib.import_moduleモジュールを動的にインポートするために使用したい。私のコードは次のようになります:

import os
import importlib

os.chdir('D:\\Python27\\Lib\\bsddb')
m = importlib.import_module('db')
print dir(m)

Python コンソールでこれを正常に実行できます。しかし、これらのコードをファイルC:\Users\Administrator\Desktop>python test.pyで実行すると、機能しません。

Traceback (most recent call last):
File "test.py", line 5, in <module>
  m = importlib.import_module("db")
File "D:\Python27\lib\importlib\__init__.py", line 37, in import_module
  __import__(name)
ImportError: No module named db

しかし、db.py ファイルをスクリプト ファイルと同じディレクトリにコピーすると、機能します。理由がわかりません。

4

1 に答える 1

0

編集:コンソールで以前のコードをテストしたところ、機能しました。ただし、コードを再度変更しました。bsddbモジュールを直接保持しD drive、コードを次のように変更しました。

import os
os.chdir("D:\\")
import importlib
m = importlib.import_module("bsddb.db")
print len(dir(m))
print dir(m)

これにより319list of functions and variablesモジュールによって指数化されます。上記のようなものを使用してモジュールをインポートする必要があるdot (.) notationようです。

于 2016-07-16T14:23:41.287 に答える