0

我正在使用 Python(x,y) 2.7。我使用 Spyder 或 Eclipse+Pydev 编写代码。当我试图获取 Python 模块列表时,Spyder IDE 给出的结果与 Eclipse+Pydev 不同。代码很简单

import sys as s
print s.modules.keys() 

Spyder 给出了正确的模块名称,例如

 ['matplotlib._tri', 'numpy.core.info', 'dicom.os', 'matplotlib.artist',...etc.

Eclipse+Pydev 给出的结果如下

['copy_reg'、'sre_compile'、'locale'、'_sre'、'functools'、'encodings'、'site'、' builtin '、'sysconfig'、'operator'、' main '、'types'、' encodings.encodings','sphinxcontrib','msvcrt','abc','enthought','_weakrefset','errno','encodings.codecs','sre_constants','imp','_abcoll','ntpath' 、'_codecs'、'new'、'nt'、'_warnings'、'genericpath'、'stat'、'zipimport'、'encodings。内置','警告','UserDict','encodings.cp1252','sys','codecs','re','os.

为什么会有这种差异?任何知识材料/参考都会很棒。有没有办法获得 Spyder 给出的相同结果?

4

1 回答 1

2

Spyder 的主要设计目标之一是使交互式科学计算尽可能轻松。为了促进这一点,默认情况下,Spyder 在启动时会启动一个定制的交互式 Python 会话。它通过设置一个名为 PYTHONSTARTUP 的环境变量来实现此自定义,该变量指定将在解释器启动时执行的脚本的路径。您可以在首选项...控制台...高级设置下控制此设置。默认情况下,Spyder 指向scientific_startup.py,它将大量科学模块和函数直接导入到主命名空间中,以便快速、交互式地进行探索。

我想您可以通过在解释器配置设置下设置相同的环境变量来配置 PyDev 以加载相同的科学启动脚本。然而,PyDev 会为每个 Python 解释器使用这个启动脚本,这可能不是您一直打算做的事情,尤其是当您使用 PyDev 开发 Python 应用程序时。

请注意,对于 Spyder 编辑器中的任何脚本,您可以控制它是在当前交互式 Python 解释器中执行,还是在不使用科学启动脚本的单独、专用 Python 解释器中执行。使用“运行设置”对话框(按 F6)。有时你想在同一个交互式会话中一遍又一遍地执行你的脚本,但其他时候(比如开发一个 GUI 应用程序)你希望每个脚本执行都发生在一个干净的 Python 会话中,它没有一堆额外的科学功能主命名空间。

于 2013-05-11T21:19:40.047 回答