使用epub python包时出现此错误,或者您可以为python说epub库,想知道如何处理它。请帮忙..
Traceback (most recent call last):
File "F:/4th semester/3", line 4, in <module>
book=epub.open_epub('d:\welcome.epub')
File "C:\Python27\lib\site-packages\epub\__init__.py", line 43, in open_epub
return EpubFile(filename, mode)
File "C:\Python27\lib\site-packages\epub\__init__.py", line 82, in __init__
self._init_read()
File "C:\Python27\lib\site-packages\epub\__init__.py", line 143, in _init_read
self.toc = ncx.parse_toc(self.read_item(item_toc))
File "C:\Python27\lib\site-packages\epub\__init__.py", line 276, in read_item
return self.read(os.path.join(self.content_path, path))
File "C:\Python27\lib\zipfile.py", line 931, in read
return self.open(name, "r", pwd).read()
File "C:\Python27\lib\zipfile.py", line 957, in open
zinfo = self.getinfo(name)
File "C:\Python27\lib\zipfile.py", line 905, in getinfo
&#39;档案中没有名为%r的项目&#39; % 名称)
KeyError:&#34;没有名为u&#39; OEBPS \\ toc.ncx&#39;在档案馆&#34; enter code here
答案 0 :(得分:2)
感谢您提供有关该问题的报告。这是......好吧......对我来说很遗憾,我很久以前就已经修好了。
所以,我已经推出了新版本0.5.2,你可以升级你的版本,看它是否按预期工作(它应该,但我没有在任何Windows环境下运行单元测试)。 / p> PS:我不会说“我有生命和事情发生了”,但是......是的,就是这样......
答案 1 :(得分:1)
根据您的问题,我假设您使用的是Python-Epub
库:https://pypi.python.org/pypi/epub/0.5.1,而您正在Windows中运行。
知道EPUB本质上是zip文件很有帮助。 Python EPUB处理库中的典型错误是尝试使用os.path.join
在 zip存档内部构建路径,就好像它是常规文件系统一样。在Windows os.path.join
上挤压\\
模块无法识别的Windows文件路径分隔符(即zipfile
)。
这是epub
库中的一个错误(应该报告),但您可以轻松地解决此问题:
确定epub
来源的位置:
python -c "import epub; print epub.__file__"
将以下功能添加到epub
来源:
def zip_path_join(a, *p):
for b in p:
a += '/' + b
return a
搜索epub
的{{1}}来源,并将其替换为os.path.join