teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1870閲覧

Pythonコードの実行するとエラー

sayu33

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

1クリップ

投稿2024/09/10 05:58

編集2024/09/10 08:33

1

1

実現したいこと

Pythonコードの実行をしたいです。何回やってもエラーが出るので、その先に進めません。

発生している問題・分からないこと

Pythonは正しくインストール済みで、仮想環境を有効にして次に実行で何回もエラーが出てしまいます。

エラーメッセージ

error

1FileNotFoundError: Could not find module 'C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\libzbar-64.dll' (or one of its dependencies). Try using the full path with constructor syntax. 2このエラーメッセージは、Pythonプログラムが libzbar-64.dll というファイルを見つけられないことを示しています。このファイルは pyzbar ライブラリの一部で、バーコードやQRコードの読み取りに使用されます。

該当のソースコード

(my_project_env) PS C:\Users\sayu2\my_project>python C:\Users\sayu2\my_project\your_script.py

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Copiotにきいてやれることはやりましたがエラーが出ます

補足

試したこと
①環境変数の編集で見つけやすくするため新規に入れましたC:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar;
②ライブラリのアンインストール:pip uninstall pyzbar
③ライブラリの再インストール:pip install pyzbar
ちなみに libzbar-64.dll というファイルはフォルダーにちゃんとあります。

melian👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2024/09/10 06:42

「なにをした時に」エラーになったのですか? import pyzbar.pyzbar とかでしょうか Traceback の前部分を省略していますか? 全文載せた方がいいです そこに libiconv.dll もありますか?
sayu33

2024/09/10 06:57

返答ありがとうございます。初めて質問投稿したので分かりやすく投稿出来ていないですね。 (my_project_env) PS C:\Users\sayu2\my_project>python ↑のコードを入力して↓のコードを入力するとエラーが出ます。 C:\Users\sayu2\my_project\your_script.py Pythonプログラムが libzbar-64.dll というファイルを見つけられないと表示されます。 でもフォルダーにlibzbar-64.dll はあります。libiconv.dll も同じ場所にあります。 どうしてでしょうか、、、。何でエラーが出るか分かりません。よろしくお願いいたします。
melian

2024/09/10 06:59

pyzbar の GitHub リポジトリに置かれている README に以下の記載があります。(vcredist_x64.exe か vcredist_x86.exe をインストールする必要があるそうです) Windows error message https://github.com/NaturalHistoryMuseum/pyzbar#windows-error-message > If you see an ugly ImportError when importing pyzbar on Windows you will most likely need the Visual C++ Redistributable Packages for Visual Studio 2013. Install vcredist_x64.exe if using 64-bit Python, vcredist_x86.exe if using 32-bit Python.
quickquip

2024/09/10 07:24

「Pythonプログラムが libzbar-64.dll というファイルを見つけられない」という文字がシェルに出力されるのですか? https://teratail.com/help/question-tips#questionTips34 > 表示されたエラーメッセージをそのままコピー&ペーストしましょう。自分でタイプしなおしたり、自分で解釈・要約しようとしてはいけません。
sayu33

2024/09/10 07:24

返答ありがとうございます。インストールやってみます。
juner

2024/09/10 07:35

この質問文には java や php は出てこないので タグ付けは python だけでいいのではないでしょうか?
sayu33

2024/09/10 08:28

quickquipさん 返答ありがとうございます FileNotFoundError: Could not find module 'C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\libzbar-64.dll' (or one of its dependencies). Try using the full path with constructor syntax. このエラーメッセージは、Pythonプログラムが libzbar-64.dll というファイルを見つけられないことを示しています。このファイルは pyzbar ライブラリの一部で、バーコードやQRコードの読み取りに使用されます。 このようなエラーが出てきます。
sayu33

2024/09/10 08:30

junerさん 確かにそうですね。タグ付けは python だけでいいです。 指摘ありがとうございます。
meg_

2024/09/10 10:54 編集

> Pythonは正しくインストール済みで、仮想環境を有効にして 仮想環境はどのツールを使われていますか? > (my_project_env) PS C:\Users\sayu2\my_project>python > ↑のコードを入力して↓のコードを入力するとエラーが出ます。 > C:\Users\sayu2\my_project\your_script.py your_script.pyの内容は何ですか? OSはWindowsですよね?pipで入れたなら必要なDLLも一緒にインストールされるはずですが、インストール時は問題なくインストール成功されたんですよね? 環境構築からやり直した方が早い場合もあるかもしれません。
quickquip

2024/09/11 04:35

想像だと、発生したエラーの詳細(Traceback)を見えないようにして分かりやすいが原因を調査したり質問したりしようとすると混乱を招く日本語のメッセージに置き換える、みたいなことを your_script.py がやっているんだろうな、と思いました Windows10ですか?
sayu33

2024/09/11 08:30

meg_さん 返答ありがとうございます 仮想環境はどのツールを使われていますか?venvのツールです。 > (my_project_env) PS C:\Users\sayu2\my_project>python > ↑のコードを入力して↓のコードを入力するとエラーが出ます。 > C:\Users\sayu2\my_project\your_script.py your_script.pyの内容は何ですか? ↓こちらがプログラム内容です。 import cv2 import numpy as np from pyzbar.pyzbar import decode import csv import os import ctypes os.add_dll_directory(r"C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar") ctypes.CDLL(r'C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\libzbar-64.dll') def read_qr_code_from_camera(): cap = cv2.VideoCapture(0) data_list = [] while True: ret, frame = cap.read() if not ret: print("カメラの映像を取得できませんでした") break for barcode in decode(frame): barcode_data = barcode.data.decode('utf-8') print(f"QRコードデータ: {barcode_data}") data_list.append(barcode_data) # QRコードを読み取った後にループを終了 cap.release() cv2.destroyAllWindows() save_to_csv(data_list) # ここでCSVに保存する return cv2.imshow('QRコード読み取り', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() def save_to_csv(data_list): with open('qr_data.csv', mode='w', newline='') as file: writer = csv.writer(file) writer.writerow(["QRコードデータ"]) for data in data_list: writer.writerow([data]) print("データがqr_data.csvに保存されました") if __name__ == "__main__": read_qr_code_from_camera() print("現在の作業ディレクトリ:", os.getcwd()) OSはWindowsですよね?はい、そうです。 pipで入れたなら必要なDLLも一緒にインストールされるはずですが、 インストール時は問題なくインストール成功されたんですよね? はい、確認済みです。 環境構築からやり直した方が早い場合もあるかもしれません。 はい、そうかもしれませんね、、、。 ありがとうございます。
quickquip

2024/09/11 08:49

FileNotFoundError の上に Traceback (most recent call list) File "(略)your_script.py", line (略), in in <module> ctypes.CDLL(略) とか出てませんか?
melian

2024/09/11 08:52

補足すると、3年前に同様の問題が issues に報告されています。 FileNotFoundError: Could not find module 'libzbar-64.dll' (or one of its dependencies). Try using the full path with constructor syntax. · Issue #93 · NaturalHistoryMuseum/pyzbar https://github.com/NaturalHistoryMuseum/pyzbar/issues/93 こちらは今年1月に報告されている問題で、libzbar-64.dll ではなく libiconv.dll が見つからないというものです。 FileNotFoundError: Could not find module 'libiconv.dll' (or one of its dependencies). Try using the full path with constructor syntax. · Issue #161 · NaturalHistoryMuseum/pyzbar https://github.com/NaturalHistoryMuseum/pyzbar/issues/161 どちらとも vcredist_x64.exe(もしくは vcredist_x86.exe)のインストールで問題が解決されたとの返信が付いています。(解決されない旨の返信も付いています) なお、vcredist_x64.exe は以下からダウンロードできます。 Download Visual Studio 2013 の Visual C++ 再頒布可能パッケージ from Official Microsoft Download Center https://www.microsoft.com/ja-jp/download/details.aspx?id=40784
quickquip

2024/09/11 09:05

os.add_dll_directory(r"C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar") ctypes.CDLL(r'C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\libzbar-64.dll') の2行は必要で入っているものですか? なんかうまく動かないからとりあえず試してみよう/確認してみよう、という感じで入っているものですか?
meg_

2024/09/11 10:17 編集

> from pyzbar.pyzbar import decode 上記コードがエラーの発生元でしょうか?それとも下記コードでしょうか? > ctypes.CDLL(r'C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\libzbar-64.dll')
sayu33

2024/09/11 13:14

meg_さん 返答ありがとうございます from pyzbar.pyzbar import decode 上記コードがエラーの発生元でしょうか?それとも下記コードでしょうか? > ctypes.CDLL(r'C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\libzbar-64.dll') from pyzbar.pyzbar import decode このインポート文が実行される際に、pyzbarライブラリが内部でlibiconv.dllおよびlibzbar-64.dllを読み込もうとしますが、これらのファイルが見つからないためエラーが発生しています。
sayu33

2024/09/11 13:25

quickquipさん 返答ありがとうございます Windows11です FileNotFoundError の上に ↓がありました(毎回長いエラーが出るので見逃していました(/ω\)) Traceback (most recent call last): File "C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\zbar_library.py", line 58, in load dependencies, libzbar = load_objects(Path('')) ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\zbar_library.py", line 51, in load_objects cdll.LoadLibrary(str(directory.joinpath(dep))) File "C:\Users\sayu2\AppData\Local\Programs\Python\Python312\Lib\ctypes\__init__.py", line 460, in LoadLibrary return self._dlltype(name) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\sayu2\AppData\Local\Programs\Python\Python312\Lib\ctypes\__init__.py", line 379, in __init__ self._handle = _dlopen(self._name, mode) ^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: Could not find module 'libiconv.dll' (or one of its dependencies). Try using the full path with constructor syntax. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\sayu2\my_project\your_script.py", line 3, in <module> from pyzbar.pyzbar import decode File "C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\pyzbar.py", line 7, in <module> from .wrapper import ( File "C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\wrapper.py", line 151, in <module> zbar_version = zbar_function( ^^^^^^^^^^^^^^ File "C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\wrapper.py", line 148, in zbar_function return prototype((fname, load_libzbar())) ^^^^^^^^^^^^^^ File "C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\wrapper.py", line 127, in load_libzbar libzbar, dependencies = zbar_library.load() ^^^^^^^^^^^^^^^^^^^ File "C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\zbar_library.py", line 60, in load dependencies, libzbar = load_objects(Path(__file__).parent) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sayu33

2024/09/11 13:32

quickquipさん 返答の続きです os.add_dll_directory(r"C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar") ctypes.CDLL(r'C:\Users\sayu2\my_project\my_project_env\Lib\site-packages\pyzbar\libzbar-64.dll') の2行は必要で入っているものですか? なんかうまく動かないからとりあえず試してみよう/確認してみよう、という感じで入っているものですか? はい、2行は異なる目的を持っていますが、どちらか一方で十分ですね。 os.add_dll_directory これでディレクトリ内のDLLファイルが自動的に見つかるようになるかな?とか ctypes.CDLL 指定したDLLファイルを直接読み込み、色々試してました。
sayu33

2024/09/11 13:37

melianさん 返答ありがとうございます。 libzbar-64.dll 、 libiconv.dllの問題が色々報告されてるんですね、、、。 Visual C++ 再頒布可能パッケージ vcredist_x64.exe インストールはしました。 インストールはしたけれど解決出来ませんでした。 再インストールをしてみようと思います。
sayu33

2024/09/12 08:21

melianさん コメントありがとうございます。 Microsoft Visual C++ 2015-2022 x64 インストール済みでしたが Microsoft Visual C++ 2013 x64 はインストールしていなかったためインストールしたら 問題が解決しました! ありがとうございました。
guest

回答1

0

いままでこのライブラリは使えてたのでしょうか?
pyzbarを再インストールしてみては?

bash

1pip uninstall pyzbar 2pip install pyzbar

投稿2024/09/10 06:55

Black_Velvet

総合スコア121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sayu33

2024/09/10 07:11

返答ありがとうございます。 pip uninstall pyzbar pip install pyzbar こちらは、全部やってみましたが何も変わらなかったです、、、。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問