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