首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入滑雪板但不能调用sklearn.linear_model

问导入滑雪板但不能调用sklearn.linear_model
EN

Stack Overflow用户
提问于 2017-09-26 09:27:28
回答 1查看 1.5K关注 0票数 2

我已经安装了sklearn,并且能够使用命令import sklearn导入sklearn。

然而,我发现sklearn.module_name不能调用sklearn的子模块,例如:

代码语言:javascript
复制
In [1]: import sklearn

In [2]: sklearn.linear_model
Traceback (most recent call last):

  File "<ipython-input-2-e64c575ed22e>", line 1, in <module>
    sklearn.linear_model

AttributeError: 'module' object has no attribute 'linear_model'

同时,我能够直接导入sklearn.linear_model

代码语言:javascript
复制
In [3]: import sklearn.linear_model

In [4]: sklearn.linear_model
Out[4]: <module 'sklearn.linear_model' from 
'C:\Users\sng\AppData\Local\conda\conda\envs\python2\lib\site-
packages\sklearn\linear_model\__init__.pyc'>

上述情况不正确,例如在matplotlib中:

代码语言:javascript
复制
In [5]: import matplotlib

In [6]: matplotlib.pyplot
Out[6]: <module 'matplotlib.pyplot' from 
'C:\Users\sng\AppData\Local\conda\conda\envs\python2\lib\site-
packages\matplotlib\pyplot.pyc'>

我很好奇这是怎么回事?这个包裹滑雪板和其他的不同吗?我的IDE是python2.7的Spyder

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-05 13:06:11

不是的。只是当您调用import matplotlib时,它会在内部导入pyplot,因此您可以按原样使用它,而无需专门导入pyplot。

看看文件的来源。,它是在执行import matplotlib时导入的。它有几句台词,比如:

代码语言:javascript
复制
...
...
from matplotlib.cbook import (
    _backports, mplDeprecation, dedent, get_label, sanitize_sequence)
from matplotlib.compat import subprocess
from matplotlib.rcsetup import defaultParams, validate_backend, cycler
...
...

其中一些从cbook、compat、rcsetup的导入--我敢肯定--反过来又是从pyplot导入pyplot或类的。

滑雪板的情况并非如此。看看__init__.py of sklearn的来源](.py#L15)

它只有下列进口:

代码语言:javascript
复制
import sys
import re
import warnings
import os
from contextlib import contextmanager as _contextmanager
import logging

它根本不使用linear_model,因此出现了错误。

您可以通过导入以下相关包来验证此行为:

代码语言:javascript
复制
import sklearn
import sklearn.svm

现在,当您执行sklearn.linear_model时,您将得到正确的输出:

代码语言:javascript
复制
<module 'sklearn.linear_model' from '/usr/local/lib/python2.7/dist-packages/sklearn/linear_model/__init__.pyc'>

因为,这一次,至少定义的导入在.使用(导入)某个linear_model类。因此,系统可以使用linear_model。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46422646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档