我已经安装了PymuPDF / fitz,但是在运行下面的示例代码后,我试图从PDF文件中提取图像
doc = fitz.open(pdf_path)
for i in range(len(doc)):
for img in doc.getPageImageList(i):
xref = img[0]
pix = fitz.Pixmap(doc, xref)
if pix.n < 5: # this is GRAY or RGB
pix.writePNG("p%s-%s.png" % (i, xref))
else: # CMYK: convert to RGB first
pix1 = fitz.Pixmap(fitz.csRGB, pix)
pix1.writePNG("p%s-%s.png" % (i, xref))
pix1 = None
pix = None
它给了我以下错误,我已经搜索了但没有单个报告这种错误,我已经安装了PyMuPDF,muPDF和fitz模块
Traceback (most recent call last):
File "/home/waqar/PycharmProjects/predator/ExtractFileImage.py", line 1, in <module>
import fitz
File "/home/waqar/anaconda3/envs/retinanet/lib/python3.6/site-packages/fitz/__init__.py", line 1, in <module>
from frontend import *
ModuleNotFoundError: No module named 'frontend'
答案 0 :(得分:4)
PyPI上有一个名为fitz
的软件包。由于PyMuPDF使用相同的名称fitz
作为其顶层文本,因此除上述更改外,这两个软件包无法在同一Python中共存。
答案 1 :(得分:3)
我已通过以下方式解决了此问题:
pip install PyMuPDF
答案 2 :(得分:3)
我尝试了以上pip install PyMuPDF
的解决方案。
但它开箱即用。
因此,我使用了PyMuPDF的先前版本。对我来说效果很好。
pip install PyMuPDF==1.16.14
答案 3 :(得分:1)
在文件/home/waqar/anaconda3/envs/retinanet/lib/python3.6/site-packages/fitz/__init__.py
更改
from frontend
至from fitz.frontend
答案 4 :(得分:1)
Python3 并且您已经安装了 PyMuPDF 模块。
pip install --upgrade pip
pip install -U PyMuPDF
答案 5 :(得分:0)
在脚本上调用python应该可以解决问题:
python script.py
如果您不使用关键字python,则可能会收到错误消息。
就我而言,我得到了:
ModuleNotFoundError: No module named 'fitz'
答案 6 :(得分:-2)
您可以使用 pdfplumber。如果以下代码返回“无”,则为扫描的 pdf,否则可搜索。
with pdfplumber.open(file_name) as pdf:
page = pdf.pages[0]
text = page.extract_text()
print(text)
要从扫描的 pdf 中提取文本,您可以使用 OCRmyPDF。简易包装