天天看點

Rtree打包成exe有關問題Rtree打包成exe

Rtree打包成exe

打包包含Rtree時,出現了缺少spatialindex_c64.dll,找了許多問答,在一個網站上找到了解決方法,這裡記錄一下, 具體的網頁不知道是哪個了。。

https://stackoverflow.com/questions

有的Rtree安裝之後不包含lib檔案 以及裡面的dll檔案,需要下載下傳

在使用pyinstaller打包exe時,可以先在cmd中執行

pyinstaller -F -c xxx.py
           

再在生成的.spec檔案中替換代碼

# -*- mode: python ; coding: utf-8 -*-
#---引入pyinstaller庫---
from PyInstaller.utils.hooks import collect_dynamic_libs
block_cipher = None


a = Analysis(['new_exe.py'],
             pathex=['C:\\pycharm檔案\\程式整合\\roadnet_process'],
             #---修改的地方,Rtree為缺失的dll所在的庫,其他缺失的庫可類似地修改---
             #---更複雜的問題建議去pyinstaller官網看官方文檔---
             binaries=collect_dynamic_libs("rtree"),
             datas=[],
             hiddenimports=[],
             hookspath=[],
             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='new_exe',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          #---ico為程式圖示,需在和py檔案在同一目錄下,或使用絕對路徑---
          console=True , icon='f11.ico')
           

再在cmd視窗裡執行pyinstaller xxx.spec