Python import在解释器中工作,在脚本Numpy / Matplotlib中不起作用



我在OSX Snow Leopard上,我在脚本中运行2.7,解释器似乎运行2.6

在我能够导入numpy之前,但后来我在尝试导入matplotlib时会遇到错误,所以我去寻找解决方案并更新了我的PYTHONPATH变量,但我认为我做得不对,现在只是把一切都搞砸了。

这是当我尝试在脚本中导入numpy时得到的:

追踪(最近一次通话):文件"./hh_main.py",第5行,位于导入numpy文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/init.py",第137行,位于导入add_newdocs文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/add_newdocs.py",第9行,位于从numpy.lib导入add_newdoc文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/lib/init.py",第4行,位于从type_check导入*文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/lib/type_check.py",第8行,位于将numpy.core.numeric导入为_nx文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/core/init.py",第5行,位于导入多阵列ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/core/multarray.so,2):找不到符号:_PyCapsule_Import引用自:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/core/multarray.so应为:平面命名空间在/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/core/multarray.so 中

此外,这是我从解释器中的sys.path得到的:

[","/Users/joshuaschnier/Documents/python_files","/Library/Frameworks/python.framework/Versions/2.7/lib/python2.7/site packages","/Library/Frameworks/Pythn.framework/Versions/2.7.lib/python27.zip","/Library/Frameworks/python.framework/Versions/2.7/lib/python2.7/plat-darwin","Library/FFrameworks/python.framework/Versions/2"。7/lib/python2.7/plat-mac','/Library/Frameworks/python2.7/plat-mac.framework/Versions/2.7/lib/python2.7/lib-tk','/Library/Frameworks/Pythn2.7/lib.framework/Visions/2.7/lb/python2.7/lib-old','Library/Frameworks/spython2.7./lib-dynload']

这是我的PYTHONPATH,我想我更新错了:

:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/

谢谢你的帮助。

您通常需要为您使用的每个版本的python安装一次numpy、matplotlib等,因为它会将自己安装到特定的"python2.x/site packages"目录中。

以上输出是从2.6或2.7会话中生成的吗?如果是2.6会话,那么是的,将PYTHONPATH指向2.7是不起作用的——numpy包含编译的C代码(例如multiarray.so文件),这些代码将针对特定版本的python构建。

如果你不想维护两组包,我建议你为2.7版本安装numpy、matplotlib等,删除PYTHONPATH设置,并确保脚本和解释器会话都使用2.7版本。

如果你想保留这两个版本,你只需要将每个包安装两次(而且你可能仍然需要撤销对PTYHONPATH的更改)

最新更新