pyinstaller打包PyQt5程序GIS相关第三方包的问题汇总

对打包问题进行了整理,以防文章链接遗失,新增个别打包问题

大部分问题解决的办法出自此处:https://guangmujun.cn/archives/168

https://blog.csdn.net/this_is_id/article/details/105214856

感谢以上两位作者,分享实际解决问题方法。

 1、shapely库相关:

问题

Unable to find "e:\github\forexe\venv\lib\site-packages\shapely\DLLs\geos.dll" when adding binary and data files.

办法:在shapely库文件目录下,找到geos_c.dll文件,将其复制一份重命名为geos.dll

2、pyproj库相关

问题

ModuleNotFoundError: No module named 'pyproj._datadir'

办法:

pyproj库的安装有问题,到官网 https://www.lfd.uci.edu/~gohlke/pythonlibs/下载对应的包重新安装即可。

例如我用的window系统64位python3.6,则下载pyproj‑2.1.3‑cp36‑cp36m‑win_amd64.whl到项目文件夹,使用命令

pip install pyproj‑2.1.3‑cp36‑cp36m‑win_amd64.whl

即可正确安装pyproj库

更新:

如果重新安装库后,仍出现上述问题,提示缺少pyproj._datadir或pyproj.datadir,则将缺少的模块加入到hiddenimports中,如下:

hiddenimports=['pyproj._datadir','pyproj.datadir'

重新编译spec文件,即可解决

3、numpy相关

问题:

ModuleNotFoundError: No module named 'numpy.random.common'

两个解决方法

方法一:(推荐)

在打包生成的spec文件中,在hiddenimports参数中添加如下内容:

hiddenimports=['numpy.random.common','numpy.random.bounded_integers','numpy.random.entropy']

方法二:

在使用到numpy库的py文件中,加入下述内容

import numpy.random.common
import numpy.random.bounded_integers
import numpy.random.entropy

4、sklearn相关

ModuleNotFoundError: No module named 'sklearn.utils._cython_blas'

解决:

在打包生成的spec文件中,在hiddenimports参数中添加如下内容:

hiddenimports=['sklearn.utils._cython_blas','cython', 'sklearn', 'sklearn.ensemble','sklearn.neighbors.typedefs','sklearn.neighbors.quad_tree','sklearn.tree._utils','scipy._lib.messagestream']

5、geopandas库相关

问题:

File "site-packages\geopandas\datasets\__init__.py", line 7, in <module>
StopIteration
[6764] Failed to execute script application

解决:

找到geopandas库文件下的__init__.py,将import geopandas.datasets这句注释掉

6、rtree库相关

pyinstaller -D -c^
--add-data="data;data" ^ 
--add-data="D:\Python\Python37\Lib\site-packages\rtree\spatialindex_c.dll;." ^
--add-data="D:\Python\Python37\Lib\site-packages\rtree\spatialindex-64.dll;." ^
--icon=favicon.ico ^
--distpath=exe ^
roadAllProcess.py
  • -w:窗口程序,-c为控制台程序
  • --add-data:添加依赖的数据
  • ^:cmd中的换行符
  • --distpath:输出目录,默认为dist

7、fiona库相关

问题:

  File "site-packages\fiona\collection.py", line 9, in <module>
ImportError: DLL load failed: 找不到指定的模块。

解决办法:

from osgeo import ogr
from osgeo import gdal
from fiona import _shim, schema

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值