@j_u_n_k

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

QRコード読込(pyzbar)をpyinstallerで実行ファイル化したい

解決したいこと

初心者です。
Python(pyzbarでQR読み取り)実行はできるのですが、pyinstallerで実行ファイル化(exe)すると、エラーになり実行できませんでした。
解決方法を教えてください。。
よろしくお願いいたします。

Win10
Pyrhon 3.8
pyzbar 0.1.9
Pillow 9.2.0

発生している問題・エラー

File ”ctypes\_init_.py”, line 373, in_init_
File Not Found Error: Could not find module "C:Users\000001\AppData\Local\Temp\_MEI204243\pyzbar\libiconv-2. dll" (or one)
of its dependencies). Try using the full path with constructor syntax.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “Test.py”, line 18, in <module>
 
from pyzbar.pvzbar import decode „
File <frozen import lib. bootstrap>”, line 991, in find and load
File “<frozen import lib. bootstrap>”, line 975, in [find and load unlocked
File “<frozen import lib. bootstrap>”, line 671, in "load unlocked
File ‘Pyinstaller¥loader¥pyimod03_importers.py”, line 495, in exec module
File "pyzbarkoyzbar.py”, line 7, in <module>
File “<frozen import lib. Bootstrap>”, line 991, in find and load
File “<frozen import lib. bootstrap>”, line 975, in [find and load unlocked
File “<frozen import lib. bootstrap>”, line 671, in load unlocked
File ‘Pyinstaller¥loader¥pyimod03_importers.py”, line 495, in exec module
File “pyzbar¥wrapper.py”, line 15T, in <module>
File “pyzbar¥wrapper.py”, line 148, in zbar function
File “pyzbar¥wrapper.py”, line 127, in load libzbar
File “pyzbar¥zbar_library.py., line 60, in Toad
File “pyzbar¥zbar_library.py”, line 50, in load objects
File “pyzbar¥zbar_library.py”, line 51, in <listcomp>
File “ctypes¥_init_.py”, line 451, in Load Library
File “Pyinstaller¥loader¥evimod0d_ctypes.py”, line 55, in_init 。
yimod04_ctypes.PyInstallerImportError: Failed to load dnlib7dll "C:¥¥Users¥¥000001¥¥AppData¥¥Local¥¥Temp¥¥_NE1204243
\pyzbar¥¥l ibiconv-2.di |". Most likely this dynlib/dll was not found when the application was frozen.
20028] Failed to execute script “Test" due to unhandled exception!

「pyzbar \ libiconv-2.dll" が見つかりませんでした」
というエラーのようですが、何をどうしたらよいのかわからず困ってます…

libiconv-2.dllは、下記に格納されています。
C:\Users\000001\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\pyzbar

該当するソースコード

import os
import glob
import time
import sys
from PIL import Image
from tkinter import messagebox
import subprocess
import numpy as np
from PIL import Image
from pyzbar.pyzbar import decode
import datetime

#変数設定(Path)
cwd = os.getcwd()                            #現在のディレクトリを取得
files =glob.glob("ImageFile/*.jpg")          #抽出したい画像のパス

#OCR実行前にoutputファイルを削除する 
txt0 = cwd+"\\output.txt"
try:
    os.remove(txt0)                         #txtファイルを削除する
except:
    pass                                    

#テキストヘッダー
dt_now = datetime.datetime.now()            #実行日時情報取得
with open('output.txt', 'a', encoding='utf-8') as f: 
    print(dt_now, file=f)       
    print('\n■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■', file=f)     
              
#読み取り実行
for n in range(len(files)):                    
    img = Image.open(files[n])                                               
    #バーコード読込
    rate = np.arange(0.1, 2.1, 0.1)         #リサイズ
    imgs = [img.resize((int(img.width * i), int(img.height * i)), Image.Resampling.LANCZOS) for i in rate]
    datas = [decode(img) for img in imgs]   
    *codes, = filter(lambda x: x, datas)    
    qr_b="*** 読み取れませんでした ***"       #変数仮設定
    try:
        code = codes[0]
        qr_b=code[0][0].decode('utf8')
    except:
        pass        
    
    #読み取り結果をファイルへ出力
    with open('output.txt', 'a', encoding='utf-8') as f:                    
        print(files[n], file=f)  
        print('【 QRコード、バーコード読み取り結果 】', file=f) 
        try:
            print(qr_b, file=f)                                         
        except:
            print('*** 読み取れませんでした ***', file=f)  
       
#outputファイルを開く
subprocess.Popen(["start", "", r"output.txt"],shell=True) 

# 終了処理
messagebox.showinfo\
    ('処理終了','ファイルが開きますので\n\
内容確認してください。\n')             
time.sleep(2) 
sys.exit()   

試してみたこと


読んでみたのですが、なにをどうしたらよいのか理解できず・・・

0 likes

1Answer

Comments

  1. @j_u_n_k

    Questioner

    教えて頂いたページの内容で対応し解決できました!!
    助かりました!
    ありがとうございました!

Your answer might help someone💌