【问题标题】:Same Interpreter(?), Different Package Version in SpyderSpyder中相同的解释器(?),不同的包版本
【发布时间】: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


【解决方案1】:

我会检查两个不同的可能问题:

1) 确保删除正在导入请求的模块的 .pyc 文件 - 我相信 Spyder 中有一个设置可以确保每次调用 UMD 时都会重新加载解释器?

2) 即使指定了解释器,也要确保 Spyder 正在使用的站点包也被指定。

可能在安装 Spyder 时,它创建了一个虚拟环境,该环境在安装时复制了系统站点包的内容。虽然您可能正在更新系统包,但 Spyder 正在查看的虚拟环境可能没有更新?

【讨论】:

    猜你喜欢
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    相关资源
    最近更新 更多