我在OSX Snow Leopard上,我在我的脚本中运行2.7并且解释器似乎运行2.6
在我能够导入numpy之前然后我会在尝试导入matplotlib时遇到错误,所以我去找一个解决方案并更新了我的PYTHONPATH变量,但我认为我做错了,现在简单地搞砸了一切 .
这是我在我的脚本中尝试导入numpy时得到的结果:
Traceback(最近一次调用最后一次):文件“./hh_main.py”,第5行,在import 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行,in来自numpy.lib导入add_newdoc文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/lib/init.py”,第4行,来自type_check import *文件“/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/版本/ 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期望:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7中的flat namespace /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 / Frameworks / Pepy.framework / Version / 1.7 / lib / python2.7','/ Library / Frame /Python.framework / Version / 2.7 / lib / python2 .7 / plat-darwin','/ Library / Frame /Python.framework / Version / 7.7 / lib / python2.7 / plat-mac','/ Library / Frame /Python.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,我想我更新错了:
:/ Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/
谢谢你的帮助 .
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更改)