Pthon混合的python版本

时间:2014-12-09 23:43:18

标签: centos python pip

我最近使用this自定义安装指南安装了python 3.4,系统默认使用python 2.6。今天我需要将tldextract安装到python2.6 我使用pip pip2.6 install tldextract做到了这一点,但在我尝试导入模块后,导入失败并出现此错误。

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

这似乎是tldextract的python3.4版本,因为它试图在urllib中找到请求模块。所以我猜pip安装了错误版本的模块,我该如何解决这个问题呢?或者一起删除python 3.4。

1 个答案:

答案 0 :(得分:1)

tldextract在源代表库中具有以下代码块,并且行号匹配:

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

因此,看起来Python 2分支因某些未知原因而抛出异常,并且它已经失败到Python 3.我将首先看看为什么会这样。