実現したいこと
エラーを出さずに実行する
原因がわかるだけでも助かります
発生している問題・分からないこと
普通に実行した場合は問題なく動作するのですが、
sudoオプションをつけて実行した場合のみ下記のエラーが発生します。
当該コードで使用している別のライブラリでsudoが必要なので、外せません。
エラーメッセージ
error
1Traceback (most recent call last): 2 File "/Users/user/minhaya/main.py", line 20, in <module> 3 text = pytesseract.image_to_string(img) 4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 5 File "/Users/user/.asdf/installs/python/3.12.2/lib/python3.12/site-packages/pytesseract/pytesseract.py", line 422, in image_to_string 6 return { 7 ^ 8 File "/Users/user/.asdf/installs/python/3.12.2/lib/python3.12/site-packages/pytesseract/pytesseract.py", line 425, in <lambda> 9 Output.STRING: lambda: run_and_get_output(*args), 10 ^^^^^^^^^^^^^^^^^^^^^^^^^ 11 File "/Users/user/.asdf/installs/python/3.12.2/lib/python3.12/site-packages/pytesseract/pytesseract.py", line 287, in run_and_get_output 12 run_tesseract(**kwargs) 13 File "/Users/user/.asdf/installs/python/3.12.2/lib/python3.12/site-packages/pytesseract/pytesseract.py", line 263, in run_tesseract 14 raise TesseractError(proc.returncode, get_errors(error_string)) 15 ^^^^^^^^^^^^^^^^^^^^^^^^ 16 File "/Users/user/.asdf/installs/python/3.12.2/lib/python3.12/site-packages/pytesseract/pytesseract.py", line 155, in get_errors 17 line for line in error_string.decode(DEFAULT_ENCODING).splitlines() 18 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 19UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 214: invalid start byte
該当のソースコード
python
1pytesseract.image_to_string(img)
実行環境
Python3.12.2
MacOS Ventura 13.6.5
Apple M1
補足
この現象が起こるようになった原因の心当たりとして、
直前に今までRosettaのhomebrewのpyenvからインストールしていたPythonを、
arm64のasdfからインストールしました。
ライブラリを使わずsubprocessから直接tesseractを実行した場合は、正常に動作しました。
回答4件
あなたの回答
tips
プレビュー