我正在使用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有没有办法得到相同的结果?
答案 0 :(得分:2)
Spyder的主要设计目标之一是使交互式科学计算尽可能轻松。为了实现这一点,默认情况下,Spyder在启动时启动定制的交互式Python会话。它通过设置一个名为PYTHONSTARTUP的环境变量来实现此自定义,该变量指定将在解释器启动时执行的脚本的路径。您可以在首选项...控制台...高级设置下控制此设置。默认情况下,Spyder指向scientific_startup.py
,它将一大堆科学模块和函数直接导入主命名空间,以便快速,交互式探索。
我想您可以通过在Interpreter Configuration设置下设置相同的环境变量来配置PyDev以加载相同的科学启动脚本。但是,PyDev会为每个Python解释器使用这个启动脚本,这可能不是你打算一直做的事情,特别是如果你使用PyDev来开发Python应用程序。
请注意,对于Spyder编辑器中的任何脚本,您可以控制它是在当前的交互式Python解释器中执行还是在不使用科学启动脚本的单独的专用Python解释器中执行。使用“运行设置”对话框(按F6)。有时您希望在同一个交互式会话中反复执行脚本,但有时候(比如开发GUI应用程序),您希望每个脚本执行都在一个干净的Python会话中进行,该会话中没有一堆额外的科学功能。主命名空间。