运行时候报错:TypeError: Parameters to generic types must be types. Got <module 'PIL.Image' from 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\PIL\\Image.py'>.
import sys, os import base64 import json from PIL import Image from easyofd.ofd import OFD
def test_ofd2(file_path): """ ofd2pdf ofd2img """ # with open(r"0e7ff724-1011-4544-8464-ea6c025f6ade.ofd","rb") as f:
file_prefix = os.path.splitext(os.path.split(file_path)[1])[0]
with open(file_path, "rb") as f:
ofdb64 = str(base64.b64encode(f.read()), "utf-8")
ofd = OFD() # 初始化OFD 工具类
ofd.read(ofdb64, save_xml=True, xml_name=f"{file_prefix}_xml") # 读取ofdb64
# print("ofd.data", ofd.data) # ofd.data 为程序解析结果
pdf_bytes = ofd.to_pdf() # 转pdf
img_np = ofd.to_jpg() # 转图片
ofd.del_data()
with open(f"{file_prefix}.pdf", "wb") as f:
f.write(pdf_bytes)
for idx, img in enumerate(img_np):
# im = Image.fromarray(img)
img.save(f"{file_prefix}_{idx}.jpg")
file_path = 'C:\Users\XUN\Desktop\test\178,422.79.ofd' test_ofd2(file_path)
===============================报错内容如下======================================
C:\ProgramData\Anaconda3\python.exe C:/Users/XUN/PycharmProjects/office_automation/Kimo_assistant_v.5.2/test0631.py
Traceback (most recent call last):
File "C:/Users/XUN/PycharmProjects/office_automation/Kimo_assistant_v.5.2/test0631.py", line 63, in
进程已结束,退出代码为 1
@renoyuan
0.3.4是有这个情况,看了下是作者导包错了导致的
ofd_parser.py里面
from PIL import Image
改成
from PIL.Image import Image
可以的话提供下你的 python &pillow版本 以及问题文件。我开发环境倒没出现过这类问题,我复现下看看。
谢谢@YanceyHo 问题解决了。
但是运行上述代码,又有一个新的报错。@renoyuan我的python是3.7.6版,pillow是9.4.0版本。看到easyofd需要在python3.8+的环境中运行,但由于实际工作中需要用到ofd转pdf或者图片的功能,所以还是想在python3.7.6的版本中运行试试。
Traceback (most recent call last):
File "C:/Users/XUN/PycharmProjects/office_automation/Kimo_assistant_v.5.2/test0631.py", line 55, in
进程已结束,退出代码为 1
目前暂无考虑兼容3.8 以下版本,建议创建一个更新python环境,或fork 后去更改 3.8 以下语法特性和相关依赖