如何解决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部分将非常困难。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。