據this answer,你可以使用相對導入像這樣使用importlib
到import_module
:Python的導入庫import_module模塊的相對進口
importlib.import_module('.c', 'a.b')
爲什麼對sklearn.feature_extraction.text不是相對進口的工作?
importlib.import_module('.text', 'sklearn.feature_extraction')
我覈實,text
是一個模塊:
from types import ModuleType
import sklearn.feature_extraction.text
isinstance(sklearn.feature_extraction.text, ModuleType)
返回
True
編輯
通過 「不工作」,我的意思是它不不導入模塊。
我使用Python 3.4
絕對方式運行:
import importlib
text = importlib.import_module('sklearn.feature_extraction.text')
tfidf = text.TfidfVectorizer()
相對的方式並不:
import importlib
text = importlib.import_module('.text', 'sklearn.feature_extraction')
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
text = importlib.import_module('.text', 'sklearn.feature_extraction')
File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2249, in _gcd_import
File "<frozen importlib._bootstrap>", line 2199, in _sanity_check
SystemError: Parent module 'sklearn.feature_extraction' not loaded, cannot perform relative import
你是什麼意思的「不工作」? – cdonts