【笔记】Windows系统部署suna基于 MSYS2的Poetry 虚拟环境backedn后端包编译失败处理

article/2025/7/1 14:27:13

基于 MSYS2(MINGW64)中 Python 的 Poetry 虚拟环境包编译失败处理笔记

一、背景
在基于 MSYS2(MINGW64)中 Python 创建的 Poetry 虚拟环境里,安装 Suna 开源项目相关包时编译失败,阻碍项目正常部署。

后端的部署卡在这几个包上

 

二、失败原因分析

  1. 编译工具缺失:MSYS2(MINGW64)虽有 Python,但默认未配全 GCC、Make 等编译工具,一些需编译扩展模块的包(如 pandas )就无法顺利安装。
  2. 依赖不兼容:包依赖的系统库(像 OpenSSL、zlib )在 MSYS2 环境中的版本,可能和包需求的版本对不上。Python 包之间也可能存在版本冲突,导致安装失败。
  3. 环境变量问题:MSYS2 环境的路径风格和 Windows 原生路径解析不同,会让编译时找不到依赖文件或工具。

三、解决方案(核心)

这是无奈但有效的方案
新建相同 Python 版本虚拟环境,在新环境中安装相关包。

然后在新环境文件夹的 site - packages 目录下,搜索已安装包的所有文件夹(包括包文件夹及其对应的 .dist - info 文件夹 ),复制这些文件夹到 MSYS2(MINGW64)的 Poetry 虚拟环境的 site - packages 目录中,从而让 Suna 项目能正常部署。

四、补充解决方案(效果欠佳但可尝试)

  1. 安装编译工具链:在 MSYS2(MINGW64)终端运行 pacman -S --needed base-devel mingw-w64-x86_64-toolchain ,尝试补齐编译工具,但实际效果不佳。
  2. 重建虚拟环境:用 Poetry 基于 MSYS2 中的 Python 新建虚拟环境,先卸载有问题的旧环境,再执行 poetry env use python (python 为 MSYS2 中 Python ),然而常无法解决编译失败问题。
  3. 调整环境变量:在终端临时设 export PATH="/mingw64/bin:$PATH" ,或修改 .bashrc 让其永久生效,试图解决路径问题,但通常难以成功。
  4. 优先用预编译包:在 Poetry 配置里设 installer.prefer-wheel true ,优先装 Wheel 包避免编译,实际操作中效果不明显。

五、验证与后续

  1. 包安装验证:激活 MSYS2(MINGW64)中的 Poetry 虚拟环境(poetry shell ),在 Python 解释器中导入已安装包(如 python -c "import pandas" ),没报错就说明安装初步成功。
  2. 项目部署验证:按 Suna 项目文档启动项目,观察能否正常运行。若还是有问题,仔细查看日志排查具体原因,继续寻找解决办法。
成功完成前端和后部的安装

http://www.hkcw.cn/article/dIkdgggAmY.shtml

相关文章

docker可视化工具

一、portainer(不常用) 1、安装portainer [rootlocalhost /]# docker run -d -p 8088:9000 --name portainer --restartalways -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --privilegedtrue portainer/portainer-c…

#16 学习日志软件测试

#16 #13布置的任务都没有wanc 反思一下 一个是贪玩 一个是懒 还有一个原因是学习方式 单看视频容易困 然后是一个进度宝贝 java ai 编程 完 挑着看的 廖雪峰教程 完 速看 很多过时 javaweb ai笔记 见到13.aop 小林coding 看到4.并发 java guide 还没开始 若依框架 笔…

【数据集】NCAR CESM Global Bias-Corrected CMIP5 Output to Support WRF/MPAS Research

目录 数据概述🔍 数据集简介:🧪 数据处理方法:📅 时间范围(Temporal Coverage):📈 模拟情景(Scenarios):🌡️ 关键变量(Variables):📏 垂直层级(Vertical Levels):💾 数据格式与获取方式:数据下载及处理参考🌍 数据集名称: NCAR CESM Global B…

如何用AI写作?

过去半年,我如何用AI高效写作,节省数倍时间 过去六个月,我几乎所有文章都用AI辅助完成。我的朋友——大多是文字工作者,对语言极为敏感——都说看不出我的文章是AI写的还是亲手创作的。 我的AI写作灵感部分来自丘吉尔。这位英国…

dvwa4——File Inclusion

LOW: 先随便点开一个文件,可以观察到url栏变成这样,说明?page是dvwa当前关卡用来加载文件的参数 http://10.24.8.35/DVWA/vulnerabilities/fi/?pagefile1.php 我们查看源码 ,没有什么过滤,直接尝试访问其他文件 在url栏的pag…

mysql数据库实现分库分表,读写分离中间件sharding-sphere

一 概述 1.1 sharding-sphere 作用: 定位关系型数据库的中间件,合理在分布式环境下使用关系型数据库操作,目前有三个产品 1.sharding-jdbc,sharding-proxy 1.2 sharding-proxy实现读写分离的api版本 4.x版本 5.x版本 1.3 说明…

Doris环境部署与应用开发

部署的方式有几种,可以下载github上的源码编译,这里直接下载官方最新的二进制包,差不多有4G。 wget -c https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-3.0.5-bin-x64.tar.gz tar -zxvf apache-doris-3.0.5-bin-x64.tar.gz mv apache-doris-3.0.…

Dify在Windows 11上的安装实战

一、引言 随着人工智能技术的飞速发展,大语言模型(LLM)的应用场景日益丰富,从智能客服到内容生成,再到复杂的数据分析,LLM正逐步渗透到各行各业。Dify,作为一个专注于AI应用开发的开源平台&…

C++之动态数组vector

Vector 一、什么是 std::vector?二、std::vector 的基本特性(一)动态扩展(二)随机访问(三)内存管理 三、std::vector 的基本操作(一)定义和初始化(二&#xf…

Spring Boot Starter 自动装配原理全解析:从概念到实践

Spring Boot Starter 自动装配原理全解析:从概念到实践 在Spring Boot开发中,Starter和自动装配是两个核心概念,它们共同构成了“开箱即用”的开发体验。通过引入一个Starter依赖,开发者可以快速集成第三方组件(如Red…

大模型相关

与大模型相关的问题 大预言模型(LLM )相关结构类型损失函数为什么大模型设计的参数量都是7B,13B,72B这种?大模型中的位置编码方式觉得当下的大模型相对于之前初代的bert等模型主要解决了什么样的问题?从原理…

数字规则:进制转换与原码、反码、补码

目录 引 一.不同进制的转换​ 1.二进制与十进制的转换​ (1).二进制转十进制​ (2).十进制转二进制​ 2.二进制与十六进制的转换​ (1).二进制转十六进制​ (2).十六进制转二进制​ 3.二进制与八进制的转换​ (1).二进制转八进制​ (2).八进制转二进制​ 4.十进制、…

数论——约数和倍数

数论——约数和倍数 约数和倍数试除法求单个数的约数求每个数的约数集合唯一分解定理分解质因数分解阶乘的质因数 约数个数定理和约数和定理约数个数定理约数和定理 约数有关OJ枚举求一个数的约数之和求1到n的所有数的约数个数之和 最大公约数gcd和最小公倍数lcm求gcd的方法短除…

线程池详细解析(二)

本章我们将继续讲述线程池的源码解析给,上一章我们了解了一下Worker内部类这个用作包装线程池的工作线程的内部类。本章我们看看他的核心方法 Worker(Runnable var2) {this.setState(-1);this.firstTask var2;this.thread ThreadPoolExecutor.this.getThreadFacto…

docker运行程序Killed异常排查

问题描述 我最近开发了一个C 多线程程序,测试没有问题,封装docker测试也没有问题,然后提交给客户了,然后在他那边测试有问题,不定时、不定位置异常中断,以前一直认为只要封装了docker就万事大吉&#xff0…

Linux--进程概念

1.基本概念与基本操作 • 课本概念:程序的⼀个执⾏实例,正在执⾏的程序等 • 内核观点:担当分配系统资源(CPU时间,内存)的实体。 2 描述进程-PCB 基本概念 • 进程信息被放在⼀个叫做进程控制块的数据…

铁电液晶破局 VR/AR:10000PPI 重构元宇宙显示体验

一、VR/AR 沉浸感困境:传统显示技术的天花板在哪? (一)纱窗效应与眩晕感:近眼显示的双重枷锁 当用户戴上 VR 头显,眼前像素网格形成的 “纱窗效应” 瞬间打破沉浸感。传统液晶 500-600PPI 的像素密度&…

edge进行重置设置之后,网页无法访问(显示连接不是专用连接)

问题: edge进行重置设置之后,网页无法访问(显示连接不是专用连接),如下图: 解决方法: 调整键盘为英文输入状态,刷新一下页面,鼠标点击页面任意位置(不要点击到…

sql注入补充——get注入

Sql注入 Mysql中的information_schema库 用于存储数据库元信息,包含了数据库、表、列、索引等结构化信息。 特点: 只读性 标准化:它是sql标准的一部分,适用于多种数据库系统 动态生成:数据是动态生成的&#xff…

eBay关键词搜索API开发指南

一、接口概述 eBay的Finding API提供findItemsByKeywords方法,支持通过关键词检索商品列表。该接口采用REST架构,返回标准JSON/XML格式数据,日均调用限额5000次(生产环境需申请提升配额)。 二、核心参数说明 必需参…