ArchiveTeam / wpull

Wget-compatible web downloader and crawler.
GNU General Public License v3.0
556 stars 77 forks source link

ImportError with Tornado 5.0 #384

Open m4ntic0r opened 6 years ago

m4ntic0r commented 6 years ago

I am trying to run wpull on a windows machine.

i installed python 3.6.4 (and tried with python 3.5.4, too) and run "pip3 install wpull"

everything is fine.

but when i start wpull.exe i only get the error

"ImportError: cannot import name 'SSLCertificateError' Here is the full error: https://mm-vault.de/chevereto/image/7DLe

m4ntic0r commented 6 years ago

i had the same error on a fresh debian 9 installation.

had to do the following:

pip3 install tornado==4.5.3 and later a pip3 install html5lib==0.9999 for another errorfix.

JustAnotherArchivist commented 6 years ago

You'll want html5lib==0.9999999, see #332.

As for the original import error, tornado.netutil will remove SSLCertificateError in version 5.0 (specifically, it was removed in tornadoweb/tornado@8cf55df456561077f363ce46d9760716daa1580a). How did you install the dependencies? wpull's requirements.txt explicitly depends on a version of Tornado before 5.0.

However, there is still an issue here: it seems that SSLCertificateError has never been part of the public tornado.netutil API to begin with – at least it isn't mentioned in that module's documentation for the 4.5 branch. So wpull should probably never have relied on its presence in the first place.

m4ntic0r commented 6 years ago

Just clean Windows and Debian 9 install. Then Python3 and pip3 install wpull. Tornado 5.0 was installed automatically.

changed my html5lib from 0.9999 to html5lib==0.9999999

JustAnotherArchivist commented 6 years ago

Which version of Tornado was installed exactly? (What does pip3 freeze say?)

(I was thinking it might be a pre-release version, but figured out what's actually going on since, see below.)

JustAnotherArchivist commented 6 years ago

Nevermind, I think I know what's going on. While requirements.txt asks for a version before 5.0, install_requires in setup.py does not have any version requirements. pip install follows the install_requires instructions, so it just installs any Tornado version. Looks like we'll need to add some version constraints there. This is also relevant for html5lib.

On another note, according to Stack Overflow, wpull's dependencies in requirements.txt aren't declared properly either. The line for Tornado says >=3.2.2,<5.0, but this still allows alphas, betas, and release candidates of version 5.0 to be installed. >=3.2.2,<5.0a0 might work, but I'm not entirely sure about that. An alternative would be >=3.2.2,<4.9, since there most likely won't be any/many more versions on the 4.x branch.

BarbzYHOOL commented 6 years ago

I confirm the bug on deb 9 and the fix above

InnovativeInventor commented 4 years ago

I can confirm and reproduce this bug as well.