python - 无法使用 PyInstaller 可执行文件导入 Geopandas - 尽管在虚拟环境中运行良好

标签 python pyinstaller geopandas

当我的 Python 应用程序被 PyInstaller 卡住时尝​​试导入 Geopandas,它停止工作。

  • Windows 10
  • PyInstaller 3.3.1
  • Geopandas 0.4

  • 这是源代码:
    print("Hello, StackOverflow")
    import geopandas as gpd
    

    这是编译后的 EXE 的控制台输出结果:
    Hello, StackOverflow
    Traceback (most recent call last):
      File "application.py", line 3, in <module>
      File "<frozen importlib._bootstrap>", line 971, in _find_and_load
      File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
      File "d:\documents\projecttwo\publish\harv_venv1\env\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 631, in exec_module
        exec(bytecode, module.__dict__)
      File "site-packages\geopandas\__init__.py", line 9, in <module>
      File "<frozen importlib._bootstrap>", line 971, in _find_and_load
      File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
      File "d:\documents\projecttwo\publish\harv_venv1\env\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 631, in exec_module
        exec(bytecode, module.__dict__)
      File "site-packages\geopandas\datasets\__init__.py", line 7, in <module>
    StopIteration
    [6764] Failed to execute script application
    

    当我尝试导入 Geopandas 是更复杂的应用程序时,这种行为是一致的,并且控制台输出是恒定的。

    Geopandas 已正确安装在 Python 3.6.3 虚拟环境中(通过 PIP,我也尝试过 0.4 和 0.3 版)并且在编译之前运行良好(即 python application.py 成功运行)。

    我尝试从不同来源(例如 Gohlke 的轮子)安装 geopandas 和 pyinstaller,结果相同。我还尝试从头开始创建一个全新的虚拟环境,从 Gohlke 安装 Fiona,从 pip 安装 geopandas。

    我怀疑可能需要进行一些隐藏的导入。我对 PyInstaller 相当陌生,所以任何帮助将不胜感激。

    最佳答案

    我收到了同样的错误,并以与上面的 aorr 不同的方式解决了它。

    该错误是因为 pyinstaller 找不到包中包含的 geopandas 数据集,因为它们是 .shp 文件。

    我没有在我的项目中使用 geopandas 数据集,所以我没有手动将它们包含在我的 .spec 文件中,而是注释掉了 import geopandas.datasets声明来自:File "site-packages\geopandas\__init__.py", line 9, in <module> .

    这正确编译并为我的程序提供了预期的输出。

    关于python - 无法使用 PyInstaller 可执行文件导入 Geopandas - 尽管在虚拟环境中运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51662773/

    相关文章:

    python - networkx 中图形的遍历级别顺序

    python - 如何使用 numpy 从两个一维数组生成 bool 二维数组

    python - Selenium Python 最小化浏览器窗口

    python - 为 python 独立可执行文件创建插件

    python - 使用带有 Pmw 模块的 pyinstaller 创建 python 3 exe

    geospatial - 两个 geopandas GeoSeries 的交集给出警告 "The indices of the two GeoSeries are different."和很少的匹配

    python - 将自定义变量/统计信息添加到 tqdm 栏

    python - 是否可以在 Gitlab CI 上运行 X11?

    pandas - Python folium GeoJSON map 不显示

    python - 船舶到海岸线的距离(以海里为单位)