PaddlePaddle / Paddle2ONNX

ONNX Model Exporter for PaddlePaddle
Apache License 2.0
670 stars 157 forks source link

[Discussion] 迁移Paddle2ONNX构建方式到Python 新规范(pyproject.toml) #1220

Closed Zheng-Bicheng closed 2 months ago

Zheng-Bicheng commented 2 months ago

简介 由Paddle2ONNX PMC讨论,Paddle2ONNX将要将项目构建方式从目前的使用 setup.py + requirement.txt的方式转向使用 setup.py + pyproject.toml的方式。

实施过程 由于Paddle2ONNX使用了pybind实现c++代码在python上的调用,因此计划使用pybind给出的例程作为Demo来实现这个过程,PMC的各位成员如果有建议可以畅所欲言。

Zheng-Bicheng commented 2 months ago

@Zheng-Bicheng @Jiang-Jia-Jun @Aurelius84 @GreatV

GreatV commented 2 months ago

使用 pyproject.toml 是不是不需要setup.py

Zheng-Bicheng commented 2 months ago

使用 pyproject.toml 应该不需要setup.py

这个我判断下来是这样的,对于普通工程来说, pyproject.toml就足够了。但是对于Paddle2ONNX来说setup.py这个脚本会用于CMake编译,目前没找到能在pyproject.toml中执行类似操作的办法。可以参考下cmake_example

Zheng-Bicheng commented 2 months ago

考虑到Python 3.11最新标准中已经废弃了整个 distutils 包,setup.py需要进行重新的改写。

Jiang-Jia-Jun commented 2 months ago

可以参考下 https://github.com/onnx/onnx , 我看里面也已经有pyproject.toml了

jzhang533 commented 2 months ago

使用 pyproject.toml 是不是不需要setup.py

可能还是必要的。只是,不要再直接在命令行调用 setup.py 就可以了。 https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html

Zheng-Bicheng commented 2 months ago

已经基本实现该需求,见: