apprenticeharper / DeDRM_tools

DeDRM tools for ebooks
14.55k stars 1.52k forks source link

KFX-ZIP, Tkinter, lzma and difference among Python versions #630

Open ghost opened 6 years ago

ghost commented 6 years ago

I have a book in kfx format. I built the .zip file containing the .azw file and the .voucher file. Then I opened the DeDRM_App (I am on Windows) with ActiveState Python 2.7. but the conversion fail with this error message:

`DeDRM v6.6.1: Processing: B006JP11HQ_EBOK.kfx-zip... Decrypting KFX-ZIP ebook: B006JP11HQ_EBOK Got DSN key from database C:\Users\RMANCUSO00\AppData\Local\DeDRMPrefs\kindlekey.k4i Found 1 keys to try after 0.0 seconds Decrypting KFX DRM voucher: amzn1.drm-voucher.v1.93cb408b-e65c-4417-b88d-c8441f7465ee.voucher KFX DRM voucher successfully decrypted Decrypting KFX DRMION: B006JP11HQ_EBOK.azw Error decrypting book after 0.0 seconds: 'module' object has no attribute 'LZMADecompressor' Traceback (most recent call last): File "C:\Users\RMANCUSO00\Documents\programmi\DeDRM_tools\src\k4mobidedrm.py", line 259, in decryptBook book = GetDecryptedBook(infile, kDatabases, androidFiles, serials, pids, starttime) File "C:\Users\RMANCUSO00\Documents\programmi\DeDRM_tools\src\k4mobidedrm.py", line 233, in GetDecryptedBook mb.processBook(totalpids) File "C:\Users\RMANCUSO00\Documents\programmi\DeDRM_tools\src\kfxdedrm.py", line 48, in processBook ion.DrmIon(StringIO(data[8:-8]), lambda name: self.voucher).parse(outfile) File "C:\Users\RMANCUSO00\Documents\programmi\DeDRM_tools\src\ion.py", line 954, in parse self.processpage(ct, civ, outpages, decompress) File "C:\Users\RMANCUSO00\Documents\programmi\DeDRM_tools\src\ion.py", line 981, in processpage decomp = lzma.LZMADecompressor(format=lzma.FORMAT_ALONE) AttributeError: 'module' object has no attribute 'LZMADecompressor' DeDRM v6.6.1: Failed

DeDRM v6.6.1: Complete: Successes: 0, Failures: 1 `

I think the problem is that the conversion script requires Python 3 (at least Python 2 doesn't seem to have a lzma module), but the DeDRM_App requires Python 2 (because it imports Tkinter).

ElleKayEm commented 6 years ago

Take a look at issue #512.