【发布时间】:2015-09-01 22:16:03
【问题描述】:
我得到了这个import error,正如这个answer 所指示的那样,因为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:\Python27\python.exe 的同一个解释器,并且如果我检查正在使用的 python 版本:
import sys
print(sys.version)
我到处都得到相同的结果:'2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]'。
【问题讨论】:
-
尝试为每个打印
sys.path。我怀疑 Spyder 有单独的库,而不是您安装的库。 -
@Ken 这确实是问题所在! Spyder 首先指向 Anaconda 库,尽管我将它改回了默认解释器。如何永久编辑 Spyder 的 sys.path?
-
我没有使用Spyder,所以不知道怎么修改它的路径。但是,您可以将
requests升级为conda update requests。 -
(Spyder dev here) @Michael,您是否使用 Anaconda 的 Spyder 但在另一个解释器中安装了请求?
-
@CarlosCordoba 我曾经安装过 Anaconda Spyder,但通常使用标准解释器。当我尝试在 Spyder 中更改解释器时,它让我这样做,但如果可以的话,仍然从 Spyder 中加载包(首先在 Spyder 的 sys.path 上)。最简单的解决方案就是卸载 Anaconda 并自行重新安装 Spyder。
标签: python pip python-requests python-idle spyder