本站消息

站长简介/公众号


站长简介:逗比程序员,理工宅男,前每日优鲜python全栈开发工程师,利用周末时间开发出本站,欢迎关注我的微信公众号:幽默盒子,一个专注于搞笑,分享快乐的公众号

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-07(10)

2020-08(50)

去哪里找sklearn的源码

发布于2020-07-30 23:07     阅读(1390)     评论(0)     点赞(11)     收藏(1)



我使用的python版本:python3.7.5 环境:pycharm

学习sklearn时想要看看决策树部分的源码,结果发现找不到包含源代码的.pyx文件。

在sklearn中,底层代码是由cpython编写的。cpython生成的文件格式主要有三种:.pxd .pyd .pyx

  • .pxd 文件是由 Cython 编程语言 “编写” 而成的 Python 扩展模块头文件,其中有 Cython 模块要包含的 Cython 声明 (或代码段),还可为 .pyx 文件模块提供 Cython 接口。
  • .pyx 文件是由 Cython 编程语言 “编写” 而成的 Python 扩展模块源代码文件,其中有 Cython 模块的源代码。不像 Python 语言可直接解释使用的 .py 文件,.pyx 文件必须先被编译成 .c 文件,再编译成 .pyd (Windows 平台) 或 .so (Linux平台) 文件,才可作为模块 import 导入使用。
  • .pyd 文件是非 Python,由其它编程语言 “编写-编译” 生成的 Python 扩展模块, Python 要导入 .pyd 文件,实际上是在 .pyd 文件中封装了一个 module。

以下是我遇到问题和解决问题的过程:

在项目中找到了venv/Lib/site-packages/sklearn/tree 文件夹,如图:
tree

可见,这里只有.pxd文件和.pyd文件,没有源代码文件.pyx。
查看_tree.pxd文件,可见决策树中一些结构的声明,但具体编写实现的代码应在_tree.pyx文件中。
_tree.pxd内部
那么_tree.pxd文件在哪呢。
我在python的安装目录下,项目的目录下都没有找到。

问题的解决

最终我在github上sklearn的官方开源项目里找到了完整的源代码。
gihub
分析得,我们在导入sklearn库时,直接导入了编译转换好的,能为python所使用的.pyd文件,而不是cpython所写成的源代码.pyx。

原文链接:https://blog.csdn.net/gone_with/article/details/107663337






所属网站分类: 技术文章 > 博客

作者:丸子

链接:https://www.pythonheidong.com/blog/article/466993/32153aa30135617e2dea/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)