对于Python模块列表,Eclipse + Pydev显示与Spyder不同的结果

时间:2013-05-11 18:25:37

标签: eclipse python-2.7 pydev spyder

我正在使用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',   '编码','网站','内置','sysconfig','运营商',   ' main ','types','encodings.encodings','sphinxcontrib','msvcrt',   'abc','enthought','_ weakrefset','errno','encodings.codecs',   'sre_constants','imp','_ abcoll','ntpath','_ codecs','new','nt',   '_warnings','genericpath','stat','zipimport',   '编码。内置','警告','UserDict','encodings.cp1252',   'sys','codecs','re','os.path','_ functools','getpass','_ locale',   'sitecustomize','signal','traceback','linecache',   'encodings.aliases','exceptions','sre_parse','os','_ weakref']

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

1 个答案:

答案 0 :(得分:2)

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

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

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