Pyinstaller - 如何捆绑 imagemagick , Tesserocr
Pyinstaller - how to bundle imagemagick , Tesserocr
我制作了一个 Python 工具(使用 PyQt)来处理使用 tesserocr 和 imagemagick wand 的扫描 pdf。我在我的系统上安装的 Tessorocr 和 imagemagick 可执行文件和工具在我的系统上运行良好。但现在我想把这个工具做成单一的可执行文件来与人们分享。这样他们就不需要单独安装Imagemagick和Tesserocr了。
我从几天前就一直在寻找这个问题,但找不到具体的答案。
我尝试了一些提示。
使用依赖的二进制文件创建 SPEC 文件
更新 imagemagick 的环境变量 os.environ['MAGICK_HOME'] = './'
但还是无法制作单个exe
二进制文件路径:
Imagemagcik - C:\Program Files\ImageMagick-7.0.10-Q16
TessorOCR - C:\Program Files\Tesseract-OCR
我的规格文件看起来像:
a = Analysis(['form.py'],
pathex=['C:\Users\usrname\nlp_repo\src'],
binaries=[('C:\Program Files\ImageMagick-7.0.10-Q16\magick.exe', 'wand') ,
('C:\Program Files\Tesseract-OCR\tesseract.exe', 'tesserocr')],
datas = [ ('C:/Users/usrname/nlp_repo/src/download.png') ],
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,
[],
exclude_binaries=True,
name='form',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='form')
Pyinstaller 错误-
format_binaries_and_datas
对于 src_root_path_or_glob、trg_root_dir 在 binaries_or_datas 中:
ValueError:要解压的值太多。
我不确定是否应该在我的 Form.SPEC 文件中包含更多设置,以及应该为 imagemagcik 和 tesserocr 二进制文件传递多少个 exe 以使其可执行。
任何步骤指南都会有所帮助。
提前谢谢你
我已经解决了这个问题。要在本地系统上安装 Python 工具 运行,我执行了以下步骤
- 设置os.environ['MAGICK_HOME'] = './'
- 设置 tessor OCR 的隐藏导入python pkg 依赖项
- 正在将 setuptools 升级到 > 45.0.0.0 (pip install --upgrade setuptools)
a = Analysis(['form.py'],
pathex=['C:\Users\usrname\nlp_repo\src'],
binaries=[],
datas = [ ('C:\Users\usrname\nlp_repo\src\download.png', '.') ],
hiddenimports=['PyTessBaseAPI'],
hookspath=[],
runtime_hooks=[],
excludes=[],
.....
二进制文件可以独立捆绑(通过在规范文件中设置二进制文件),然后目标系统用户可以单独安装它,然后可以轻松地使用 Python 使用 Pyinstaller 生成的工具。
Jsh
我制作了一个 Python 工具(使用 PyQt)来处理使用 tesserocr 和 imagemagick wand 的扫描 pdf。我在我的系统上安装的 Tessorocr 和 imagemagick 可执行文件和工具在我的系统上运行良好。但现在我想把这个工具做成单一的可执行文件来与人们分享。这样他们就不需要单独安装Imagemagick和Tesserocr了。
我从几天前就一直在寻找这个问题,但找不到具体的答案。
我尝试了一些提示。 使用依赖的二进制文件创建 SPEC 文件 更新 imagemagick 的环境变量 os.environ['MAGICK_HOME'] = './'
但还是无法制作单个exe
二进制文件路径:
Imagemagcik - C:\Program Files\ImageMagick-7.0.10-Q16
TessorOCR - C:\Program Files\Tesseract-OCR
我的规格文件看起来像:
a = Analysis(['form.py'],
pathex=['C:\Users\usrname\nlp_repo\src'],
binaries=[('C:\Program Files\ImageMagick-7.0.10-Q16\magick.exe', 'wand') ,
('C:\Program Files\Tesseract-OCR\tesseract.exe', 'tesserocr')],
datas = [ ('C:/Users/usrname/nlp_repo/src/download.png') ],
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,
[],
exclude_binaries=True,
name='form',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='form')
Pyinstaller 错误- format_binaries_and_datas 对于 src_root_path_or_glob、trg_root_dir 在 binaries_or_datas 中: ValueError:要解压的值太多。
我不确定是否应该在我的 Form.SPEC 文件中包含更多设置,以及应该为 imagemagcik 和 tesserocr 二进制文件传递多少个 exe 以使其可执行。
任何步骤指南都会有所帮助。 提前谢谢你
我已经解决了这个问题。要在本地系统上安装 Python 工具 运行,我执行了以下步骤
- 设置os.environ['MAGICK_HOME'] = './'
- 设置 tessor OCR 的隐藏导入python pkg 依赖项
- 正在将 setuptools 升级到 > 45.0.0.0 (pip install --upgrade setuptools)
a = Analysis(['form.py'],
pathex=['C:\Users\usrname\nlp_repo\src'],
binaries=[],
datas = [ ('C:\Users\usrname\nlp_repo\src\download.png', '.') ],
hiddenimports=['PyTessBaseAPI'],
hookspath=[],
runtime_hooks=[],
excludes=[],
.....
二进制文件可以独立捆绑(通过在规范文件中设置二进制文件),然后目标系统用户可以单独安装它,然后可以轻松地使用 Python 使用 Pyinstaller 生成的工具。
Jsh