由于带有i7 CPU的Macbook目前使用的是AppleCare,我现在正在开发一款带有核心双CPU的旧款Mac mini。我只是通过USB将Macbook的内置磁盘连接到Mac mini。
现在回到我的Python脚本,我遇到了一个我不完全理解并且不知道如何调试的问题。当我在Python 2.7.9中import pandas
时,Python完全崩溃,我收到错误Illegal instruction: 4
。经过一些谷歌搜索后我假设,有些软件包是针对错误的架构编译的。但我不知道哪些。
我用自制软件和pandas等安装了Python,numpy和scipy,并将pip放入虚拟环境中。我的系统是OS X 10.10.5。
python -vc "import pandas"
的输出很长,并且给定here。
我尝试重新安装Python,pandas,numpy和scipy。
答案 0 :(得分:2)
删除.pyc
文件也可能有效。
因为它发生在打电话之后
dlopen("/usr/local/lib/python2.7/site-packages/matplotlib/_pabc.so", 2);
,
您可以尝试使用以下命令检查该文件的构建类型:
file /usr/local/lib/python2.7/site-packages/matplotlib/_pabc.so
然后检查你的硬座的拱形类型:
uname -a
如果没有为该机器构建共享对象文件(_pabc.so
),则可能需要重新编译/安装/无论如何,matplotlib或其中一个依赖项。
答案 1 :(得分:1)
在我最近的经验中,这确实是由链接库作为模块库的错误架构引起的(如 chown 建议的那样)。
特别是,一个C编译的python库作为你要导入的python模块的一部分(模块目录中的_mymodule.so
文件)调用链接系统库(例如libgfortran.dylib
),两者之间存在架构不匹配。
如前所述,您可以使用uname -a
检查系统的体系结构,并通过file /path/to/lib.dylib
命令检查有问题的dylib的拱门。