我对python不是很熟悉。我在python 3.5上使用scikit-learn
。这可能是一个天真的问题。为什么python pacakge在Python 3.5中显示为模块?
在site-pacakges\sklearn
文件夹中,我可以看到__init__.py
文件。因此根据doc,sklearn
应该是包。但是当我运行下面的代码时,它说sklearn
是模块。
In [21]: sklearn
Out[21]: <module 'sklearn' from '/home/python35/lib/site-packages/sklearn/__init__.py'>
它不应该是package 'sklearn'
而不是module 'sklearn'
?
谢谢。那么为什么模块没有'__path ___'属性呢?据我所知,一个模块是'.py'文件,一个包是一个包含多个'.py'文件的文件夹,其中有'__init __。py'文件。既然文件夹和文件都有路径,我认为包和模块**都可以具有'__path__'属性。 – smwikipedia
可能因为Python中的路径与文件(模块)有关的目录(包)更多。此外,大多数模块已经具有'__file__'属性。 –