0

I recently installed python 3.4 using this custom installation guide, the system had python 2.6 as default. Today i needed to install tldextract to python2.6 I did that using pip pip2.6 install tldextract but after i tried to import the module the import failed with this error.

Traceback (most recent call last):
  File "process.py", line 12, in <module>
    import tldextract
  File "/usr/lib/python2.6/site-packages/tldextract/__init__.py", line 1, in <module>
    from .tldextract import extract, TLDExtract
  File "/usr/lib/python2.6/site-packages/tldextract/tldextract.py", line 70, in <module>
    from urllib.request import urlopen
ImportError: No module named request

That seems to be the python3.4 version of tldextract since it is trying to find the request module in urllib. So i guess pip installed the wrong version of the module, how can i fix this? Or remove python 3.4 alltogether.

1 Answer 1

1

tldextract has the following code block in the source repo, and the line numbers match:

try: # pragma: no cover
# Python 2
  from urllib2 import urlopen
  from urlparse import scheme_chars
  unicode = unicode
except ImportError: # pragma: no cover
# Python 3
  from urllib.request import urlopen

So it looks like the Python 2 branch is throwing an exception for some unknown reason and it's failing over to Python 3. I would start by looking why that might be.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.