【问题标题】:Pip mixup of python versionspython版本的pip混合
【发布时间】:2014-12-10 22:08:16
【问题描述】:

我最近使用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。

【问题讨论】:

    标签: centos python pip


    【解决方案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。我会先看看为什么会这样。

    【讨论】:

      猜你喜欢
      • 2013-11-27
      • 2013-04-20
      • 2022-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多