将脚本转换为 exe 时无法执行我的脚本



我创建了一个脚本,使用 tabula-py 和 PyPDF2 从 pdf 中提取数据。当我通过Jupyter-notebook和cmd运行我的程序时,它运行得很好。使用 pyinstaller 将其转换为可执行文件后,出现此错误:

Error: Unable to access jarfile 
E:UserspaulhongAppDataLocalTemp_MEI175522tabulatabula-1.0.2-jar-with-dependencies.jar
Error:
Traceback (most recent call last):
File "test.py", line 115, in <module>
File "test.py", line 32, in extractDataDik
tempDf = tabula.read_pdf(file, area = (72, 252, 115.2, 352.8), guess=False, pages='1')
File "site-packagestabulawrapper.py", line 108, in read_pdf
File "subprocess.py", line 395, in check_output
File "subprocess.py", line 487, in run
subprocess.CalledProcessError: Command '['java', '-Dfile.encoding=UTF8', '-jar', 
'E:\Users\paulhong\AppData\Local\Temp\_MEI175522\tabula\tabula-1.0.2-jar-with-dependencies.jar', '--pages', '1', '--area', 
'72,252,115.2,352.8', 'E:\Users\paulhong\Desktop\Purchase Order 
2\SKM_C45819060508450 (003).pdf']' returned non-zero exit status 1. [47140] Failed to execute script test

我也找不到_MEI175522指定路径上的文件夹。

我的 python 版本是 3.7.1Java版本是1.8pyinstaller 版本是 3.4Tabula-py 是最新版本

如何解决此问题?

我遇到了类似的问题,我能够使用此链接中的解决方案来解决它: 无法访问 jarfile 'tabula-1.0.2-jar-with-dependencies.jar'

我在虚拟环境中构建了我的应用程序,因此我向我的site-packages文件夹中添加了一个包含tabula-1.0.2-jar-with-dependencies.jar文件的tabula文件夹。运行命令pyinstaller --add-data appsLibsite-packagestabulatabula-1.0.2-jar-with-dependencies.jar;tabula --onefile Table_OCR.py为我正确构建可执行文件。

看起来tabula模块尚未复制到可执行文件的dist文件夹中,根据我的经验,这是pyinstaller的常见问题,它经常会错过python目录中的包。

转到dist文件夹并检查tabula文件夹是否存在,如果没有,则需要将其复制过来。

转到你的 python 目录,它应该是这样的: C:Users<user_name>AppDataLocalProgramsPythonPython37-32Libsite-packages

从此处复制需要位于 dist 文件夹中的任何包

我发现这个GitHub帖子很有帮助。

本质上:

1-在您的系统上找到白板jar文件。路径可能如下所示:

C:ProgramDataMiniconda3Libsite-packagestabulatabula-1.0.5-jar-with-dependencies.jar

2-运行pyinstaller时使用--add-file选项:

pyinstaller your_file.py --add-data "C:ProgramDataMiniconda3Libsite-packagestabulatabula-1.0.5-jar-with-dependencies.jar;tabula"

(请注意追加到路径的;tabula。它;tabula适用于Windows,:tabula适用于Linux(。

相关内容

  • 没有找到相关文章

最新更新