2014-09-25 58 views
1

我用pip安装了scikit-learn(pip install -U scikit-learn)。然后我去ipython并运行import sklearn,但如果我然后尝试加载任何模块,他们都没有找到。特别是,sklearn的tab完成似乎不正确:Python:为什么不加载此子模块?

In [2]: sklearn. 
sklearn.base   sklearn.clone   sklearn.externals  sklearn.re   sklearn.setup_module sklearn.sys   sklearn.test   sklearn.warnings 

任何想法这里发生了什么?其他模块加载正常。例如,numpy正常工作。

+0

您可能必须明确导入它们,即'import sklearn。 '。许多大型图书馆都以这种方式行事。 – SethMMorton 2014-09-25 18:13:36

+0

良好的呼叫!感谢Seth。 – user592419 2014-09-25 21:53:55

+0

请记住,如果我将标题更改为对其他人更有帮助?我会把我的评论作为答案。 – SethMMorton 2014-09-25 21:55:18

回答

4

导入要明确使用子模块:

import sklearn.<submodule> 
print sklearn.<submodule>.function() 

from sklearn.<submodule> import function 
print function() 

在大蟒蛇包,常常子模块需要明确进口。这样用户就可以在不导入整个包的情况下选择要导入的内容(这会对启动时间产生负面影响)。

+0

[这是更多的讨论](http://stackoverflow.com/questions/1824001/self-import-of-subpackages-or-not)关于为什么子包没有自动导入。 – Garrett 2014-10-11 23:06:22