将脚本转换为 exe 时无法执行我的脚本
Unable to execute my script when converting it to exe
我创建了一个脚本来使用 tabula-py 和 PyPDF2 从 pdf 中提取数据。当我通过 Jupyter-notebook 和 cmd 运行 我的程序时,它运行完美。使用 pyinstaller 将其转换为可执行文件后,出现此错误:
Error: Unable to access jarfile
E:\Users\paulhong\AppData\Local\Temp\_MEI175522\tabula\tabula-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-packages\tabula\wrapper.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.1
Java版本是1.8
pyinstaller 版本是 3.4
Tabula-py 是最新版本
我该如何解决这个问题?
看起来 tabula 模块没有被复制到你的可执行文件的 dist 文件夹,根据我的经验,这是 pyinstaller 的一个常见问题,它经常会丢失 python 目录中的包。
进入dist文件夹查看是否有tabula文件夹,如果没有则需要复制过来。
转到您的 python 目录,它应该是这样的:
C:\Users\<user_name>\AppData\Local\Programs\Python\Python37-32\Lib\site-packages
从这里复制任何需要在 dist 文件夹中的包
我遇到了类似的问题,我可以使用 link 中的解决方案解决它:Unable to access jarfile 'tabula-1.0.2-jar-with-dependencies.jar'
我在虚拟环境中构建了我的应用程序,因此我将包含 tabula-1.0.2-jar-with-dependencies.jar
文件的 tabula
文件夹添加到我的 site-packages
文件夹中。 运行 命令 pyinstaller --add-data apps\Lib\site-packages\tabula\tabula-1.0.2-jar-with-dependencies.jar;tabula --onefile Table_OCR.py
为我正确构建了可执行文件。
我创建了一个脚本来使用 tabula-py 和 PyPDF2 从 pdf 中提取数据。当我通过 Jupyter-notebook 和 cmd 运行 我的程序时,它运行完美。使用 pyinstaller 将其转换为可执行文件后,出现此错误:
Error: Unable to access jarfile
E:\Users\paulhong\AppData\Local\Temp\_MEI175522\tabula\tabula-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-packages\tabula\wrapper.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.1 Java版本是1.8 pyinstaller 版本是 3.4 Tabula-py 是最新版本
我该如何解决这个问题?
看起来 tabula 模块没有被复制到你的可执行文件的 dist 文件夹,根据我的经验,这是 pyinstaller 的一个常见问题,它经常会丢失 python 目录中的包。
进入dist文件夹查看是否有tabula文件夹,如果没有则需要复制过来。
转到您的 python 目录,它应该是这样的:
C:\Users\<user_name>\AppData\Local\Programs\Python\Python37-32\Lib\site-packages
从这里复制任何需要在 dist 文件夹中的包
我遇到了类似的问题,我可以使用 link 中的解决方案解决它:Unable to access jarfile 'tabula-1.0.2-jar-with-dependencies.jar'
我在虚拟环境中构建了我的应用程序,因此我将包含 tabula-1.0.2-jar-with-dependencies.jar
文件的 tabula
文件夹添加到我的 site-packages
文件夹中。 运行 命令 pyinstaller --add-data apps\Lib\site-packages\tabula\tabula-1.0.2-jar-with-dependencies.jar;tabula --onefile Table_OCR.py
为我正确构建了可执行文件。