我正在处理由其他人编写的Python脚本。我试图在我的本地开发机器上运行它没有任何问题。
我已经安装了脚本所需的模块(requests,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。
答案 0 :(得分:15)
安装中断
如果由于某种原因您的urllib3安装未能包含util
子模块,您只需从pypi页面下载存档并将util文件夹从那里复制到您的urllib3安装位置。
过时的urllib3
您发布的错误是在urllib3
内,util
的相对导入失败。
我查看了urllib3
网站,很可能你有urllib3
的旧版本。
来自更改日志:
1.8.2(2014-04-17)
修复urllib3.util未包含在包中。
尝试使用
更新模块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
答案 1 :(得分:0)
使用pip3:pip3 install urllib3 --upgrade