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

时间:2012-03-22 07:22:52

标签: python path numpy matplotlib

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

在我能够导入numpy之前然后我会在尝试导入matplotlib时遇到错误,所以我去找一个解决方案并更新了我的PYTHONPATH变量,但我认为我做错了,现在简单地搞砸了一切。

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

  

追踪(最近一次通话):    文件“./hh_main.py”,第5行,in      导入numpy    文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/init.py”,第137行,      import add_newdocs    文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/add_newdocs.py”,第9行,in      来自numpy.lib导入add_newdoc    文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/lib/init.py”,第4行,in      来自type_check import *    文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/lib/type_check.py”,第8行,in      将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/multiarray.so,2):找不到符号:_PyCapsule_Import    参考自:/ Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/core/multiarray.so    预计在:平面命名空间   in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/core/multiarray.so

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

  

['','/ Users / joshuaschneier / Documents / python_files','/ Library / Frame /Python.framework / Version / 7.7 / lib / python2.7 / site-package','/ Library / Frameworks / Python .framework / Versions / 2.7 / lib / python27.zip','/ Library / Frame /Python.framework / Version / 1.7 / lib / python2.7','/ Library / Frameworks / Cluster.framework / Version / 2.7 / lib /python2.7/plat-darwin','/ Library / Frame /Python.framework / Version / 7.7 / lib / python2.7 / plat-mac','/ Library / Frame / Pepy.framework / Version / 2.7 / lib /python2.7/plat-mac/lib-scriptpackages','/ Library / Frame /Python.framework / Version / 7.7 / lib / python2.7 / lib-tk','/ Library / Frame /Python.framework / Version /2.7/lib/python2.7/lib-old','/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload']

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

  

:/库/框架/ Python.framework /版本/ 2.7 / LIB / python2.7 /站点包/

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你通常需要为你使用的每个版本的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更改)