我收到了这个导入错误,正如这个答案所表明的那样,这是因为requests
包已过期。我使用 pip
更新了软件包,但仍然收到相同的错误。所以我尝试了from requests.utils import to_native_string
,令我惊讶的是,它在命令提示符 shell 或 IDLE 中工作得很好,但在 Spyder 中抛出错误。我检查了requests
包的版本:
import requests
print(requests.__version__)
Spyder ('1.2.3'
) 中的版本号确实与 IDLE 或 cmd shell ('2.7.0'
中的版本号不同。但是,我无法解释为什么会这样,因为Spyder在C:Python27python.exe
指向相同的解释器,并且如果我检查正在使用的python版本:
import sys
print(sys.version)
我到处都得到相同的结果:'2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]'
.
我会检查两个不同的可能问题:
1) 确保删除导入请求的模块的 .pyc 文件 - 我相信 Spyder 中有一个设置来确保每次调用 UMD 时都重新加载解释器?
2)即使指定了解释器,也要确保Spyder正在使用的站点包也被指定。
安装Spyder时,它可能创建了一个虚拟环境,该环境在安装时复制了系统站点包的内容。 虽然您可能正在更新系统软件包,但也许Spyder正在查看的虚拟环境没有更新?