我正在研究别人编写的Python脚本。我正在尝试使其在我的本地开发计算机上运行而没有任何问题。

我已经安装了脚本所需的模块(请求,urllib3和oath2),但是却遇到了以下错误,我正在努力解决。

Traceback (most recent call last):
  File "/home/saeed/ps4/scrape/run.py", line 2, in <module>
    import get_data as gd, time
  File "/home/saeed/ps4/scrape/get_data.py", line 8, in <module>
    import sys, oauth2, requests, json
  File "/usr/local/lib/python2.7/dist-packages/requests/__init__.py", line 58, in <module>
    from . import utils
  File "/usr/local/lib/python2.7/dist-packages/requests/utils.py", line 25, in <module>
    from .compat import parse_http_list as _parse_list_header
  File "/usr/local/lib/python2.7/dist-packages/requests/compat.py", line 7, in <module>
    from .packages import chardet
  File "/usr/local/lib/python2.7/dist-packages/requests/packages/__init__.py", line 3, in <module>
    from . import urllib3
  File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/__init__.py", line 16, in <module>
    from .connectionpool import (
  File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py", line 36, in <module>
    from .connection import (
  File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connection.py", line 43, in <module>
    from .util import (
ImportError: No module named util

脚本由三个文件组成。 run.py,get_data.py和incr.py。 run.py中的import语句为:
import get_data as gd, time

在get_data.py中:
import sys, oauth2, requests, json

在incr.py中:
import time

我以为我必须安装一个名为“util”的模块。我已经搜索了该模块,但找不到它,因此,我认为这似乎是一个更深层次的问题,而不仅仅是安装模块。

如果有人能指出正确的方向解决问题,我将不胜感激。我正在使用Python 2.7.3。

最佳答案

破安装

如果由于某种原因您的urllib3安装未能包括util子模块,则可以直接从pypi页面下载存档,然后将util文件夹从那里复制到urllib3安装位置。

过时的urllib3

您发布的错误是在urllib3中,相对导入util失败。

我检查了urllib3网站,很可能您使用的是urllib3的旧版本。

从变更日志中:



尝试使用更新模块

sudo pip install urllib3 --upgrade

(或您计算机上的等效文件)

替代

可能失败的第二个原因是,如果您尝试从模块内部运行代码。通常认为这很危险,应该避免。

确认您要加载哪个模块

通过启动python解释器并检查从哪里加载urllib3模块,来查看模块的位置;
python -c "import urllib3; print urllib3.__file__"

同样,您可以检查版本:
python -c "import urllib3; print urllib3.__version__"

手动检查
您还可以检查以确保util子模块出现在正确的位置;
ls /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util

关于python - 在Python 2.7中导入 'urllib3.util'失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23361432/

10-10 18:08