首页 > 解决方案 > Python,pytesseract - TypeError: select() 接受 3 个位置参数,但给出了 5 个

问题描述

我的代码

import pytesseract
from PIL import Image
im = Image.open("1.png")
page_text = pytesseract.image_to_string(im, lang='eng', config="--oem 3 --psm 6")

我有以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/data/venv/p39/lib/python3.9/site-packages/pytesseract/pytesseract.py", line 413, in image_to_string
    return {
  File "/data/venv/p39/lib/python3.9/site-packages/pytesseract/pytesseract.py", line 416, in <lambda>
    Output.STRING: lambda: run_and_get_output(*args),
  File "/data/venv/p39/lib/python3.9/site-packages/pytesseract/pytesseract.py", line 284, in run_and_get_output
    run_tesseract(**kwargs)
  File "/data/venv/p39/lib/python3.9/site-packages/pytesseract/pytesseract.py", line 258, in run_tesseract
    with timeout_manager(proc, timeout) as error_string:
  File "/usr/local/lib/python3.9/contextlib.py", line 117, in __enter__
    return next(self.gen)
  File "/data/venv/p39/lib/python3.9/site-packages/pytesseract/pytesseract.py", line 124, in timeout_manager
    yield proc.communicate()[1]
  File "/usr/local/lib/python3.9/subprocess.py", line 1134, in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)
  File "/usr/local/lib/python3.9/subprocess.py", line 1979, in _communicate
    ready = selector.select(timeout)
  File "/usr/local/lib/python3.9/selectors.py", line 324, in select
    r, w, _ = self._select(self._readers, self._writers, [], timeout)
TypeError: select() takes 3 positional arguments but 5 were given

我对 Python 3.7 和 3.9 有同样的错误。

pytesseract==0.3.8(也试过0.3.6和0.2.9,没有区别)。

我尝试从源代码(3.9.4)安装一个新的 Python 并创建一个新的 venv,但没有任何改变。

但它以前工作过,它可以在另一台计算机上工作。

我找不到问题。有小费吗?

标签: pythontypeerrorpython-tesseract

解决方案


推荐阅读