IPython与Python有何不同?

| 这些天我一直在尝试PyMC,我写了一个非常简单的mcmceasy.py。有趣的是,该脚本在IPython中可以正常运行,但是,当我直接使用Python时,它提供以下回溯:
Traceback (most recent call last):
  File \"mcmceasy.py\", line 2, in <module>
    from pymc import MvNormal, MCMC
  File \"/usr/lib/python2.7/site-packages/pymc/__init__.py\", line 55, in <module>
    import ScipyDistributions
  File \"/usr/lib/python2.7/site-packages/pymc/ScipyDistributions.py\", line 1, in <module>
    import scipy.stats.distributions as sc_dst
  File \"/usr/lib/python2.7/site-packages/scipy/stats/__init__.py\", line 12, in <module>
    import mstats
  File \"/usr/lib/python2.7/site-packages/scipy/stats/mstats.py\", line 3, in <module>
    from mstats_basic import *
  File \"/usr/lib/python2.7/site-packages/scipy/stats/mstats_basic.py\", line 52, in <module>
    import scipy.misc as misc
  File \"/usr/lib/python2.7/site-packages/scipy/misc/__init__.py\", line 20, in <module>
    __all__ += common.__all__
NameError: name \'common\' is not defined
我的问题分为两部分:1.如何使用香草python shell解决此问题? 2.是什么使IPython摆脱了此错误?     
已邀请:
        当然,我没有您的脚本,但是我已经在IPython和python中成功运行了从2.6和2.7 python的Windows,Linux和OSX版本的有问题的导入。报告时没有错误。 但是,查看“ scipy / misc / init.py \”并没有导入通用名称。
from common import *
#...more stuff
__all__ += common.__all__
代码有效的事实意味着common被导入到其他地方。在
scipy.__init__.py
中,PackageLoader是从numpy导入的,它执行可怕的魔术,检查调用堆栈中帧的路径等。 IPython与python的导入不同,尤其是在使用pylab标志的情况下。那将使ipython和python不同。我建议单独尝试上述导入。在PyMC之前调用导入可能是一种解决方法 否则,您应该发布numpy版本,这是从其中调用PackageLoader的版本。     
        我从未使用过pymc,但首先请检查ipython和您的系统python是否使用相同的环境。但是我怀疑pymc只是在使用scipy功能,这些功能利用了特定的ipython并行计算功能,因此,如果是这种情况,第n.1部分将非常困难。     

要回复问题请先登录注册