首页 文章

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

提问于
浏览
1

我在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 回答

  • 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更改)

相关问题