当前位置: 首页 > news >正文

Docker 环境下 GeoPandas/Fiona 报错

最近在部署 FastAPI 后端的时候,踩了小坑。
系统是用 Docker 跑的,基础镜像选的是 python:3.11-slim,想着 slim 版干净轻量、打包也快。
结果上线之后,用户一上传 SHP 文件就直接报错,一串长长的 Traceback,把我整懵了。

错误核心信息是这样的:

ImportError: the 'read_file' function requires the 'fiona' package, but it is not installed or does not import correctly. 
Importing fiona resulted in: libexpat.so.1: cannot open shared object file: No such file or directory

当时我还以为是 fiona 没装好,于是各种 pip install --force-reinstall fiona,结果根本没用。
容器重启、重新构建,照样报一样的错。


后来冷静下来仔细看报错信息,关键在最后一句:

“libexpat.so.1: cannot open shared object file: No such file or directory”

原来这不是 Python 层的问题,而是系统层的动态库缺失。
fiona 这个库在底层其实是用 C 写的,依赖一些系统级的 GIS 库如 GDAL、Expat 之类的。
libexpat.so.1 就是个 XML 解析的动态库文件,而 python:slim 版本默认是极度精简的,很多基础库都没带上。

也就是说——
不是 fiona 没装,而是它装上了,却“用不起来”。

明白原因后,解决就特别简单了。
只要在 Dockerfile 里加上安装系统依赖的命令,装上缺的库就行:

RUN apt-get update && \ apt-get install -y --no-install-recommends libexpat1 gdal-bin libgdal-dev && \ rm -rf /var/lib/apt/lists/*

libexpat1 就是报错缺的库,
gdal-binlibgdal-dev 是 Fiona、GeoPandas 读写 SHP 文件的底层支持。

然后重新 build 一下镜像,启动服务,再传 SHP 文件,完美解决。
日志干干净净,地图数据直接解析出来,舒服!


这事让我彻底长了记性:
以后再用 python:slim 或类似的轻量镜像,一定要记得——
Python 装完包不代表能用,有些包还要系统级的 C 库配合。

尤其是像 GeoPandas、Fiona、Shapely 这种跟 GIS、空间分析沾边的库,底层全是 C 语言和 GDAL,那些库如果没装上,pip 装一万次都没用。

http://www.dtcms.com/a/465373.html

相关文章:

  • Docker简易教程
  • vps 网站发布直播软件app下载免费
  • DORIS 服务器宕机重启后出现的问题
  • 网络安全审计技术原理与应用
  • 手机上做网站南宁品牌网站设计公司
  • 第五部分:VTK高级功能模块(第135章 Imaging模块 - 图像处理类)
  • 如何通过 5 种有效方法同步 Android 和 Mac
  • AJAX 知识篇(2):Axios的核心配置
  • 招商网站建设公司申请注册商标的流程
  • 网页美工课程seo网站优化师
  • 海外关键词规划SEO工具
  • AI学习日记——卷积神经网络(CNN):卷积层与池化层的实现
  • iOS 26 系统流畅度实战指南|流畅体验检测|滑动顺畅对比
  • JS中new的过程发生了什么
  • 系统白名单接口添加自定义验证(模仿oauth2.0),防安全扫描不通过
  • 校园服装网站建设预算手机软件应用市场
  • 【AI论文】ExGRPO:从经验中学习进行推理
  • 连接两个世界:QIR——量子-经典混合计算的编译器桥梁
  • 怎样制作网页链接教程狼雨seo教程
  • 第1章:初识Linux系统——连接网络NAT模式
  • CSS3 动画:从入门到精通
  • 在JavaScript / HTML中,所有转义字符(字符实体)
  • shopnc本地生活o2o网站源码网站开发软件怎么做
  • Vue3+socket.io 项目本地vite配置
  • wangEditor
  • Unity网络开发--超文本传输协议Http(1)
  • 从“用框架”到“控系统”——数据流、事件流、接口边界是如何形成的;
  • 有没有什么网站做泰国的东西做网站排名软件
  • 达梦数据库逻辑备份与还原
  • 如何解决Redis和数据库的一致性问题?