paddle python3支持排期
Created by: guochaorong
考虑到用户对python3的期待,https://github.com/PaddlePaddle/Paddle/issues/12040 同时对python2的依赖,采用兼容python2和python3的方案
具体实施步骤
-
搭建python3 ci job, 使用manylinux 的docker镜像,部署安装python3 环境, 比如python3.5。 设置python 3.5 环境变量 以及 python 和pip 默认指向python3 和pip3, 执行单测。
-
分别对python中的这些模块及单测进行 to3 兼容(调用2to3 工具等 , 对代码进行兼容性修改) 'paddle.utils', 'paddle.dataset', 'paddle.reader', 'paddle.fluid', 'paddle.fluid.layers', 'paddle.fluid.proto', 'paddle.fluid.proto.profiler', 'paddle.fluid.transpiler', 'paddle.fluid.transpiler.details
如果还需要支持v2版本: packages+=['paddle.proto', 'paddle.trainer', 'paddle.trainer_config_helpers', 'paddle.v2', 'paddle.v2.master', 'paddle.v2.plot', 'paddle.v2.reader', 'paddle.v2.dataset', 'py_paddle']
-
调试上面失败的环节, 依赖包的变更, 单测fail等。并对新进的代码兼容, 直到整个python3 ci job流程通过。
-
后续开发需要兼容python2 和python3 (ci保障)
实施排期
7月18号,ci job搭建完毕 (wuyi、 chaorong) 8月20, 脚本兼容完毕 (qiyang、 chaorong), python3 ci job告警打开。 8月30,ci job 整体通过(qiyang、chaorong), 9月15,python3 whl包发布