You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyInstaller打包osmnx程序出现fiona循环导入错误如何解决

OSMnx程序PyInstaller打包Fiona循环导入报错解决方案

该报错并非代码本身存在循环导入,而是PyInstaller打包时未正确识别Fiona模块的隐藏依赖、模块初始化顺序异常导致的,可按以下步骤解决:

  • 第一步:调整主程序导入顺序,在最顶部优先导入Fiona相关模块,修改后的myprogram.py代码如下:
# 提前预加载Fiona模块,修正初始化顺序
import fiona
from fiona import _loading
import geopandas
# 原有业务代码
import osmnx as ox
G = ox.graph_from_place('Cardiff, UK', network_type='drive')
ox.plot_graph(G)
  • 第二步:使用带隐藏导入参数的打包命令,显式告知PyInstaller打包遗漏的依赖:
    pyinstaller --onefile --hidden-import fiona --hidden-import fiona._loading --hidden-import geopandas --hidden-import osmnx --hidden-import matplotlib myprogram.py
  • 第三步:若上述操作仍报错,可通过spec配置文件打包:
    1. 先运行一次基础打包命令生成myprogram.spec配置文件
    2. 打开spec文件,将hiddenimports字段修改为以下内容:
    hiddenimports=[
        'fiona',
        'fiona._loading',
        'fiona.schema',
        'geopandas',
        'osmnx',
        'matplotlib.backends.backend_qt5agg'
    ]
    
    1. 执行命令pyinstaller myprogram.spec重新生成可执行文件即可
  • 附加兼容性说明:推荐使用Fiona 1.8.x版本进行打包,1.9+部分版本与PyInstaller适配存在已知问题,可执行pip install fiona==1.8.22降级后再打包。若运行exe时提示缺少dll文件,可将Python环境site-packages/fiona目录下的所有dll文件复制到exe同级目录即可。

内容的提问来源于stack exchange,提问作者Rhyd Lewis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:27:03