Saya telah membuat alat Python (menggunakan PyQt) untuk bekerja dengan pdf yang dipindai yang menggunakan tesserocr dan imagemagick wand . Baik Tessorocr dan imagemagick executable yang saya instal di sistem saya dan alat berfungsi dengan baik di sistem saya. Tetapi sekarang saya ingin menjadikan alat ini sebagai satu-satunya yang dapat dieksekusi untuk dibagikan kepada orang-orang. Sehingga mereka tidak perlu menginstal Imagemagick dan Tesserocr secara terpisah.

Saya telah mencari masalah ini sejak beberapa hari sekarang, tetapi tidak bisa mendapatkan jawaban yang konkret.

Beberapa petunjuk yang saya coba. buat file SPEC dengan binari dependen yang memperbarui variabel lingkungan untuk imagemagick os.environ['MAGICK_HOME'] = './'

Tapi masih belum bisa buat single exe.

Jalur biner:

Imagemagcik - C:\Program Files\ImageMagick-7.0.10-Q16 
TessorOCR - C:\Program Files\Tesseract-OCR

File spesifikasi saya terlihat seperti:

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')

Kesalahan pyinstaller- format_binary_and_datas untuk src_root_path_or_glob, trg_root_dir di binary_or_datas: ValueError: terlalu banyak nilai untuk dibongkar.

Saya tidak yakin apakah ada pengaturan lagi yang harus saya sertakan dalam file Form.SPEC saya dan berapa banyak exe yang harus dilewati untuk binari imagemagcik dan tesserocr agar dapat dieksekusi.

enter image description here

Panduan langkah apa pun akan sangat membantu. Terima kasih sebelumnya

0
JSH 23 Juli 2020, 20:51

1 menjawab

Jawaban Terbaik

Saya telah menyelesaikan masalah ini. Agar alat Python berjalan di sistem lokal, saya melakukan langkah-langkah berikut:

  1. set os.environ['MAGICK_HOME'] = './'
  2. mengatur impor tersembunyi dari dependensi tessor OCR python pkgkg
  3. memutakhirkan setuptools ke > 45.0.0.0 (instal pip --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=[],
.....

Binari dapat dibundel sebagai mandiri (dengan mengatur binari dalam file spesifikasi) dan kemudian pengguna sistem target dapat menginstalnya secara terpisah dan kemudian dapat dengan mudah menggunakan alat Python yang dihasilkan menggunakan Pyinstaller.

Jshu

0
JSH 3 Agustus 2020, 05:58