对sklearn文件pyd文件进行修改的方法
由于要修改决策树分裂算法进行修改,所以为了省事想要直接使用sklearn里现场的代码。
首先说明一下,sklearn为了提升程序运行效率所以将关键代码通过Cython编译成了.pyd文件运行。生成.pxd文件的流程是通过.pyx文件编译为c然后将编译为可执行文件.pyd(win平台下是.pyd文件,linux下是.so文件),.pyd文件可以被作为包引用到python代码中,从而实现将关键代码使用c编写。
想要修改.pyd文件就需要获取原始的.pyx文件。正常安装scikit-learn是不会有这个文件的,正确的获取该文件需要通过github的scikit-learn项目下载。下载方式随意。
github的项目中包含了全部.pyx文件。首先修改你想要修改的pyd对应的pyx文件。然后在命令行中将目录移动到你下载的scikit-learn文件下,执行以下命令(建议在anaconda中新建一个虚拟环境,不要直接使用原始的环境)。
pip install --no-build-isolation --editable .
之后等待编译结束即可。
Obtaining file:///D:/school/github/scikit-learnPreparing wheel metadata ... done
Requirement already satisfied: joblib>=0.11 in c:\anaconda3\envs\sklearndev\lib\site-packages (from scikit-learn==1.0.dev0) (1.0.1)
Requirement already satisfied: scipy>=0.19.1 in c:\anaconda3\envs\sklearndev\lib\site-packages (from scikit-learn==1.0.dev0) (1.6.2)
Requirement already satisfied: numpy>=1.13.3 in c:\anaconda3\envs\sklearndev\lib\site-packages (from scikit-learn==1.0.dev0) (1.20.2)
Requirement already satisfied: threadpoolctl>=2.0.0 in c:\anaconda3\envs\sklearndev\lib\site-packages (from scikit-learn==1.0.dev0) (2.1.0)
Installing collected packages: scikit-learnAttempting uninstall: scikit-learnFound existing installation: scikit-learn 1.0.dev0Uninstalling scikit-learn-1.0.dev0:Successfully uninstalled scikit-learn-1.0.dev0Running setup.py develop for scikit-learn
Successfully installed scikit-learn
如果出错的话就按照错误提示进行操作,一般是缺少环境或者是代码语法错误。缺少环境使用pip install XXXX进行安装(如果使用的anaconda的话用conda install XXXX),语法问题会提示你具体位置,自行解决。
另外说一下,如果要系统的对scikit-learn文件进行修改,推荐看一下参考文献中的sklearn官方的文档。
参考文献:Cython官方文档
scikit-learn官网贡献指南
对sklearn文件pyd文件进行修改的方法相关推荐
- python文件式_python中文件操作的六种模式及对文件某一行进行修改的方法
一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...
- Python如何导入自己编写的py文件(.pyx文件 .pyd文件)
一. 想要实现的效果 新建文件夹将自编模块集中管理 可在其它py文件内import 自编模块,像import第三方库一样 二. 实现的方法 步骤1:将编号的模块 *.py放入文件夹,在我计算机中是:F ...
- 【Springboot项目中pom文件parent报错的解决方法】~ ~ 详细教程
目录 (一)问题说明 (二)解决方法 (1)配置maven环境 (2)修改settings.xml文件 (3)修改的方法 (4)配置maven信息 (5)选中修改的文件 (6)update maven ...
- python调用pyd_Python生成pyd文件
Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...
- python隐藏源码,生成pyd文件并调用的完整过程
目录 pyd 特点及生成方式 首先需要在 demo.py 同目录下新建个 setup.py 文件,具体代码如下 在生成之前或许我们需要先做一个事情,那就是安装vs_buildtools 在命令行 ...
- pybind11学习 | 在Python中构建编译生成pyd文件
文章目录 0 准备 1. setuptools 2. pybind11.setup_helpers 3. cppimport 总结 0 准备 项目文件夹结构树如下: pybind11_setup_de ...
- C# .Net通过pythonnet调用python pyd文件
开发环境:windows, python310, dotnet 6.0 说明:python文件编译成pyd. 1.新建控制台应用程序 2.添加nuget包 3.C#调用代码 using Python. ...
- python import文件pyd_Python生成pyd文件
Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...
- python的pyd文件_Python 加密之 生成pyd文件
混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Python有py.pyc.pyw.pyo.pyd等文件格式. 其中,pyc是二进制文件.但很容易被反编译. pyw也不行,只是隐藏 ...
最新文章
- 十三、进程互斥的软件实现方法
- Science揭示:身体如何应对细菌的“群体感应”
- jQuery的end()方法使用详解
- was这么做的负载均衡_中间件(WAS、WMQ)运维 9个常见难点解析
- 一个成功的Git分支模型
- Java性能问题定位
- Android探索之旅 | 面向对象和Java基础
- mysql生产环境加索引_【生产篇】_MySQL环境下如何查看基于表的索引定义
- 高效的半同步/半异步模式的实现
- 《scikit-learn》数据预处理与特征工程(二)数值转换
- 中消协:要选择优质电子显示产品 OLED屏整体上略胜一筹
- hashchange
- vfp中写入文本文件_VFP中操作多种文件
- Intent简单介绍
- 【阅读笔记】量子信息
- Excel中如何将一个Excel工作表的数据按一列的关键字拆分成多个工作表
- 乐动手环app下载安装_乐动健康下载app_新版本手机乐动健康手环软件下载安装 安卓版 V2.08 - 罐头安卓网...
- 华中科技大学计算机叶磊,叶磊-华中科技大学公共卫生学院
- Hadoop学习(一)
- 笔记本Ubuntu安装失败的一般原因