【问题标题】:AttributeError: partially initialized module 'fiona' has no attribute '_loading' (most likely due to a circular import)AttributeError:部分初始化的模块“fiona”没有属性“_loading”(很可能是由于循环导入)
【发布时间】:2021-11-13 03:18:15
【问题描述】:

我正在尝试使用 PyQT5、Geopandas、OSMnX 和 Folium 创建一个地理空间 Python GUI 应用程序。我正在使用 pyinstaller 将应用程序转换为 .EXE 文件。以前,我在不导入 geopandas 时能够成功创建 .EXE 文件。但是,一旦我使用 Geopandas 构建可执行文件,如屏幕截图所示,就会出现错误。

这就是我的规范文件在构建可执行文件时的样子。


block_cipher = None

hidden_imports = [
'fiona',
'gdal',
'shapely',
'shapely.geometry',
'pyproj',
'rtree',
'geopandas.datasets',
'pytest',
'pandas._libs.tslibs.timedeltas',
'fiona._shim',
]


a = Analysis(['main.py'],
             pathex=['D:\\CrowdSourcingV2'],
             binaries=[],
             datas=[
             ('input', 'input'), 
             ('input', 'input'),
             ("D:\\Anaconda\\envs\\ox\Lib\\site-packages\\branca\\*.json","branca"),
             ("D:\\Anaconda\\envs\\ox\\Lib\\site-packages\\branca\\templates","templates"),
             ("D:\\Anaconda\\envs\\ox\\Lib\\site-packages\\folium\\templates","templates")
             ],
             hiddenimports=hidden_imports,
             hookspath=[],
             hooksconfig={},
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,  
          [],
          name='Crowdsourcing Tool',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True,
          disable_windowed_traceback=False,
          target_arch=None,
          codesign_identity=None,
          entitlements_file=None )

有人可以就我如何解决此问题提供任何提示或解决方案吗?

【问题讨论】:

  • 你能安装 Fiona 本身并导入它吗?循环导入是否仍然存在?创建一个更简单的可重现示例将有助于准确确定问题发生的位置,以便在正确的位置解决问题。
  • 另外,您可以使用 OSMnx 的文档安装说明来安装它吗? osmnx.readthedocs.io/en/stableOSMnx 项目不正式支持其他安装方式,比如pyinstaller,所以你的结果可能会有所不同。
  • 您好,我已经按照文档中的说明创建了一个专用的 OSMnX anaconda 环境。 Fiona 和 Geopandas 已成功安装,我可以毫无问题地运行该应用程序。我正在尝试使用 pyinstaller 创建应用程序的可执行文件。 .EXE 已创建,但当我尝试运行它时会引发上述错误。我将尝试创建一个 MWE 来帮助定义问题。

标签: python pyinstaller geopandas osmnx fiona


【解决方案1】:

这是 Fiona 包中的一个问题。那里有报道:https://github.com/conda-forge/fiona-feedstock/issues/138

在基于 RedHat 的发行版中,一种解决方法是安装 dnf install libnsl。不确定如何在 Windows 中安装 libnsl,但是否有办法解决问题。使用 Anaconda 安装libnsl 似乎并不能解决问题,但您也可以尝试一下。

【讨论】:

    猜你喜欢
    • 2021-08-24
    • 2021-09-24
    • 2021-07-18
    • 2020-06-14
    • 2021-02-14
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    相关资源
    最近更新 更多