在Spyder/Anaconda环境中无法安装使用PyPDF2,如何实现PDF合并?
解决方法
一、通过Anaconda/Spyder环境安装PyPDF2
安装前先确认你运行Spyder对应的Anaconda虚拟环境,默认是base环境,两种安装方式可选:
- 图形化安装:打开Anaconda Navigator,切换到「Environments」标签,选中你用的环境后,在右侧搜索框输入
PyPDF2,勾选搜索结果中的PyPDF2包,点击右下角Apply等待安装完成,重启Spyder后即可正常导入。 - 命令行安装:打开Anaconda Prompt(Windows系统)或终端(Mac/Linux系统),先激活对应环境(默认base环境无需额外激活),执行以下任意一条命令即可:
# conda源安装 conda install -c conda-forge pypdf2 # 若conda安装失败可改用pip安装 pip install pypdf2
注意你现有代码存在两个可调整点:一是for循环下的代码没有缩进,二是新版PyPDF2已弃用
PdfFileMerger,改用PdfMerger即可,修正后可运行代码如下:
import os from PyPDF2 import PdfMerger source_dir = os.getcwd() merger = PdfMerger() for item in os.listdir(source_dir): if item.endswith('.pdf'): merger.append(item) # 替换为你自己的输出路径和文件名,例如'./合并后的文件.pdf' merger.write('你的输出路径/合并文件名.pdf') merger.close()
二、其他PDF合并实现方案
如果不想用PyPDF2,也可以用兼容性更好的PyMuPDF(fitz)库实现,步骤如下:
- 安装PyMuPDF:在Anaconda Prompt/终端对应环境下执行
conda install -c conda-forge pymupdf - 使用参考代码:
import os import fitz source_dir = os.getcwd() output_path = "./合并后的文件.pdf" merged_doc = fitz.open() for item in os.listdir(source_dir): if item.endswith(".pdf"): pdf_doc = fitz.open(item) merged_doc.insert_pdf(pdf_doc) pdf_doc.close() merged_doc.save(output_path) merged_doc.close()
内容的提问来源于stack exchange,提问作者Ham
相关产品推荐
相关产品推荐

