吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 184|回复: 6
收起左侧

[经验求助] python项目跨平台编译打包问题请教

[复制链接]
qadan 发表于 2024-11-11 16:37
70吾爱币
我的需求
  • 在Windows 10平台进行代码开发,不更换到linux
  • 开发完后,在Windows上进行编译,编译到Linux 二进制文件包,包括 linux-amd64和linux-arm64等
  • 我的python项目使用了python fastapi框架



研究了两天,问了鸡屁屁踢各种回复都没搞定,目前使用了docker在本地引用linux-arm64基础镜像,但是编译镜像各种报错。


Github哪些项目release下都有各种二进制的文件,我需要就是这样效果,总不能一个系统开一个虚拟机,代码传上去编译把,所以问下大佬们的经验!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

YUYELOVE 发表于 2024-11-12 09:09
纯python项目需要编译么,难道不是直接上传源代码,安装依赖(pip install),python xxx.py (或者gunicorn --workers  --bind )直接运行程序么。

github上的二进制是别人开发好的三方库,通过pip install 引入使用。
TheTree 发表于 2024-11-12 10:05
,可以采用 Docker 容器来完成跨平台编译
步骤概述
准备 Dockerfile:定义用于编译的 Docker 镜像。
编写多阶段构建 Dockerfile:确保生成的二进制文件可以在目标平台上运行。
使用 Docker 命令进行编译:在 Docker 中编译 Python 项目,并生成二进制文件。
自动化脚本:简化多平台编译的过程。
 楼主| qadan 发表于 2024-11-12 10:14
TheTree 发表于 2024-11-12 10:05
,可以采用 Docker 容器来完成跨平台编译
步骤概述
准备 Dockerfile:定义用于编译的 Docker 镜像。

这个有详细教程吗,我用docker一推报错
 楼主| qadan 发表于 2024-11-12 10:15
YUYELOVE 发表于 2024-11-12 09:09
纯python项目需要编译么,难道不是直接上传源代码,安装依赖(pip install),python xxx.py (或者gunicor ...

我需要生产环境的包,别人拿过来直接运行的,不需要安排一大堆库
antk 发表于 2024-11-12 10:37
不知道你搜没搜过 “python交叉编译”,我以前搞过GO的交叉编译,GO相对简单点,python好像比较复杂,你搜一下看看吧。但是说实话交叉编译坑很多,最实用的说实话还是docker。
neotheone233 发表于 2024-11-12 13:38
这个问题我们碰到过,场景是生产机器不允许联网,环境只提供基础python+centos

分享一下我们的解决方案:
1. 裸机部署。用pip wheel把依赖全部下载编译(在docker镜像里处理)出来,最后将源码和依赖文件夹一起提供。这里有一点坑:有些依赖的编译需要条件(如:TA-lib),这个部分需要单独处理
下载:pip wheel . -w ./dependencies
安装:pip install --upgrade --no-index --find-links=./dependencies -r requirements.txt

2. 自带docker的rpm安装包,直接使用docker分发,分stage构建,属于比较常见的做法
docker build --platform linux/amd64 -t xxx/xxx:latest -f Dockerfile .

至于问题里面的打包,可能考虑在docker里面做pyinstaller这个方向了,注意指定一下--platform就好。不过这种分发方式很少见,现在开源项目基本都提供docker compose的部署方式
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表