<p>这可能是因为<code>tessdata</code>不可执行。在自述中,他们说:</p>
<pre class="lang-py prettyprint-override"><code>import pytesseract
# If you don't have tesseract executable in your PATH, include the following:
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract'
</code></pre>
<p>变量<code>tesseract_cmd</code>在函数<code>run_tesseract</code>下的<a href="https://github.com/madmaze/pytesseract/blob/master/pytesseract/pytesseract.py" rel="nofollow noreferrer">this file</a>中使用如下:</p>
<pre class="lang-py prettyprint-override"><code> cmd_args = []
...
cmd_args += (tesseract_cmd, input_filename, output_filename_base)
...
try:
proc = subprocess.Popen(cmd_args, **subprocess_args())
except OSError as e:
if e.errno != ENOENT:
raise e
raise TesseractNotFoundError()
</code></pre>
<p>异常可能是从try-except块引发的,因为您无法执行不可执行的文件,从而导致权限错误</p>
<p>您应该做的是找到<code>tesseract</code>可执行文件并引用它,而不是<code>tessdata</code>。正如@p13rr0m在他的<a href="https://stackoverflow.com/a/69217659/16699883">answer</a>中指出的,它可能位于<code>"/usr/local/bin/tesseract"</code>。在这种情况下,不应修改变量<code>tesseract_cmd</code>,因为它最初引用的命令<code>tesseract</code>已经可以从PATH环境变量访问</p>