HTTP 错误 404:启动 pdfbox 时未找到
HTTP Error 404: Not Found when starting up pdfbox
我不想在 python 中使用 pdfbox,我已使用此 https://pypi.org/project/python-pdfbox/ 安装,但是当我尝试 运行 p = pdfbox.PDFBox()
时出现以下错误.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/suyog/anaconda3/lib/python3.6/site-packages/pdfbox/__init__.py", line 81, in __init__
self.pdfbox_path = self._get_pdfbox_path()
File "/home/suyog/anaconda3/lib/python3.6/site-packages/pdfbox/__init__.py", line 57, in _get_pdfbox_path
r = urllib.request.urlopen(pdfbox_url)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 532, in open
response = meth(req, response)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 570, in error
return self._call_chain(*args)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
知道如何在 ubuntu 中使用 PDFBOX 吗?
所以,现有的发行版似乎已经过时了:
- 最新版本是2.0.9,2.0.8的link已失效
- 代码试图通过下载当前版本不再存在的 md5 文件来验证包的完整性。
我冒昧地分叉了现有的回购协议并实施了补丁。可在 here.
中找到此包装器的工作版本
要使用 pip 从我的存储库安装,请按照发布的说明进行操作 here。或者,下载目录中的源和 运行 python setup.py install
。
运行 代码对我有用:
In [8]: import pdfbox
...: p = pdfbox.PDFBox()
...:
In [9]: p
Out[9]: <pdfbox.PDFBox at 0x1046254e0>
添加到这个答案中,因为第一次安装它的人感觉不完整。
执行 pip install python-pdfbox
指向项目 https://pypi.org/project/python-pdfbox/,这是预期的行为。
使用说明指示像这样实例化 pdfbox 对象:p = pdfbox.PDFbox()
。
此时,我们中有些寻求答案的人可能会遇到此问题中所说的 HTTP 错误。
查看存储库,注意要下载的 pdfbox 版本是 hardcoded。这意味着任何 pip 安装此软件包的人都需要 "lucky" 足以让 apache pdfbox(这是一个 java 库)的版本与那个版本相同。
解决方案:
免责声明:我试图让这项工作适用于 Windows 10.
包 init 在 environment variable 上查找 pdfbox-app。如果找不到,它会尝试下载一个。因此错误。
- 从 pdfbox apache 下载最新的
pdfbox-app-{version}.jar
。
- 为 PDFBOX 设置环境变量,例如
set PDFBOX=C:\Dev\pdfbox-app-2.0.11.jar
- 启动一个新的命令行并尝试:
import pdfbox
p = pdfbox.PDFBox()
p.extract_text("some_filename")
警告:extract_text() 无法识别带空格的文件名,不知何故...
我不想在 python 中使用 pdfbox,我已使用此 https://pypi.org/project/python-pdfbox/ 安装,但是当我尝试 运行 p = pdfbox.PDFBox()
时出现以下错误.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/suyog/anaconda3/lib/python3.6/site-packages/pdfbox/__init__.py", line 81, in __init__
self.pdfbox_path = self._get_pdfbox_path()
File "/home/suyog/anaconda3/lib/python3.6/site-packages/pdfbox/__init__.py", line 57, in _get_pdfbox_path
r = urllib.request.urlopen(pdfbox_url)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 532, in open
response = meth(req, response)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 570, in error
return self._call_chain(*args)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/home/suyog/anaconda3/lib/python3.6/urllib/request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
知道如何在 ubuntu 中使用 PDFBOX 吗?
所以,现有的发行版似乎已经过时了:
- 最新版本是2.0.9,2.0.8的link已失效
- 代码试图通过下载当前版本不再存在的 md5 文件来验证包的完整性。
我冒昧地分叉了现有的回购协议并实施了补丁。可在 here.
中找到此包装器的工作版本要使用 pip 从我的存储库安装,请按照发布的说明进行操作 here。或者,下载目录中的源和 运行 python setup.py install
。
运行 代码对我有用:
In [8]: import pdfbox
...: p = pdfbox.PDFBox()
...:
In [9]: p
Out[9]: <pdfbox.PDFBox at 0x1046254e0>
添加到这个答案中,因为第一次安装它的人感觉不完整。
执行 pip install python-pdfbox
指向项目 https://pypi.org/project/python-pdfbox/,这是预期的行为。
使用说明指示像这样实例化 pdfbox 对象:p = pdfbox.PDFbox()
。
此时,我们中有些寻求答案的人可能会遇到此问题中所说的 HTTP 错误。
查看存储库,注意要下载的 pdfbox 版本是 hardcoded。这意味着任何 pip 安装此软件包的人都需要 "lucky" 足以让 apache pdfbox(这是一个 java 库)的版本与那个版本相同。
解决方案:
免责声明:我试图让这项工作适用于 Windows 10.
包 init 在 environment variable 上查找 pdfbox-app。如果找不到,它会尝试下载一个。因此错误。
- 从 pdfbox apache 下载最新的
pdfbox-app-{version}.jar
。 - 为 PDFBOX 设置环境变量,例如
set PDFBOX=C:\Dev\pdfbox-app-2.0.11.jar
- 启动一个新的命令行并尝试:
import pdfbox
p = pdfbox.PDFBox()
p.extract_text("some_filename")
警告:extract_text() 无法识别带空格的文件名,不知何故...