使用textract进行PDF转文本时出现ShellError错误求助
解决Windows 11下VSCode中textract提取PDF文本失败的问题
问题根源
textract提取PDF文本依赖pdftotext工具,你的系统未安装该工具,或者工具路径未加入系统环境变量,导致执行命令时找不到程序,抛出ShellError和FileNotFoundError。
解决步骤
安装Poppler工具包
pdftotext是Poppler工具包的一部分,需要先安装Windows版Poppler:- 下载Poppler的Windows预编译稳定版本
- 解压到本地任意文件夹,比如
C:\Poppler,记住其bin子文件夹的完整路径(如C:\Poppler\bin)
添加到系统环境变量
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」列表中找到
Path变量,点击「编辑」 - 点击「新建」,填入刚才的
bin文件夹路径,点击「确定」保存 - 必须重启VSCode,让新的环境变量生效
验证安装配置
打开VSCode的终端,输入命令:pdftotext --version如果能正常显示版本信息,说明配置成功。
重新运行代码
再次执行你的PDF提取代码:text = textract.process('sample.pdf')即可正常提取文本。
备选方案(无需环境变量)
如果不想修改环境变量,可以在代码中直接指定pdftotext的完整路径:
import textract # 替换成你实际的pdftotext.exe路径 text = textract.process( 'sample.pdf', method='pdftotext', cmd=['C:/Poppler/bin/pdftotext.exe', 'sample.pdf', '-'] )
内容的提问来源于stack exchange,提问作者Praveen V
相关产品推荐
相关产品推荐

