Python中文
首页
教程
问答
标签
搜索
登录
注册
Mac 10.6通用二进制scipy:未找到cephes/specfun“_aswfa”符号
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我不能让scipy在32位模式下运行,当编译为i386/x86_64通用二进制文件并在我的64位10.6.2 MacPro1,1上执行时。在</p> <h3>我的python设置</h3> <p>在<a href="https://stackoverflow.com/questions/1654837/run-an-os-x-universal-binary-in-32-bit-mode/1654855#1654855">this answer</a>的帮助下,我构建了一个32/64位的intel universal binary of Python2.6.4,目的是使用<code>arch</code>命令在架构之间进行选择。(我设法用lipo为我想要的几个库制作了一些通用的二进制文件。)所有这些都可以。然后,我按照<a href="http://blog.hyperjeff.net/?p=160" rel="nofollow noreferrer">hyperjeff's article</a>上的说明安装了scipy,只安装了更为更新的numpy(1.4.0),并且在安装scipy的过程中跳过了将numy移到一边的一点。在</p> <p>现在,除了scipy之外的所有功能似乎都在工作,而且我确实可以使用<code>arch -i386 python</code>和<code>arch -x86_64 python</code>在32位和64位模式之间进行选择。在</p> <h3>错误</h3> <p>Scipy在32位模式下抱怨:</p> <pre><code>$ arch -x86_64 python -c "import scipy.interpolate; print 'success'" success $ arch -i386 python -c "import scipy.interpolate; print 'success'" Traceback (most recent call last): File "<string>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/interpolate/__init__.py", line 7, in <module> from interpolate import * File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/interpolate/interpolate.py", line 13, in <module> import scipy.special as spec File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/special/__init__.py", line 8, in <module> from basic import * File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/special/basic.py", line 8, in <module> from _cephes import * ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/special/_cephes.so, 2): Symbol not found: _aswfa_ Referenced from: /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/special/_cephes.so Expected in: flat namespace in /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/special/_cephes.so </code></pre> <h3>尝试追踪问题</h3> <p>看起来像scipy.插值导入名为<code>_cephes</code>的内容,它查找名为<code>_aswfa_</code>的符号,但在32位模式下找不到它。在浏览scipy的源代码时,我在specfun.f中找到了一个<code>ASWFA</code>子例程斯派芬。所以但这两个和_塞菲斯似乎是通用二进制文件:</p> ^{pr2}$ <p>呵呵。我卡住了。我可能会尝试,但还没有弄清楚如何包括编译斯派芬。所以我自己,不知怎么的。在</p> <p>我想scipy并不是所有32位机器都坏了,所以我猜我安装它的方式有问题,但我不知道是什么原因。在</p> <p>考虑到我的独特之处,我真的不希望得到完整的答案但如果有人能给我指明方向,他们会非常感激的。在</p> <h2><strong>(编辑)</strong>解决问题的更多详细信息:</h2> <p>我使用的是gfortran(gnufortran,来自gcc4.2.1appleinc.build5646)。在</p> <p>Python 2.6.4的安装大致如下:</p> <pre><code>cd /tmp curl -O http://www.python.org/ftp/python/2.6.4/Python-2.6.4.tar.bz2 tar xf Python-2.6.4.tar.bz2 cd Python-2.6.4 # Now replace buggy pythonw.c file with one that supports the "arch" command: curl http://bugs.python.org/file14949/pythonw.c | sed s/2.7/2.6/ > Mac/Tools/pythonw.c ./configure --enable-framework=/Library/Frameworks --enable-universalsdk=/ --with-universal-archs=intel make -j4 sudo make frameworkinstall </code></pre> <p>scipy0.7.1的安装与<a href="http://blog.hyperjeff.net/?p=160" rel="nofollow noreferrer">here</a>差不多,但它可以归结为一个简单的<code>sudo python setup.py install</code>。在</p> <p>如果您查看带有<code>nm</code>的uCephes库,那么在i386体系结构中该符号确实是未定义的,正如David Cournapeau所建议的:</p> <pre><code>$ nm -arch x86_64 /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/special/_cephes.so | grep _aswfa_ 00000000000d4950 T _aswfa_ 000000000011e4b0 d _oblate_aswfa_data 000000000011e510 d _oblate_aswfa_nocv_data (snip) $ nm -arch i386 /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/special/_cephes.so | grep _aswfa_ U _aswfa_ 0002e96c d _oblate_aswfa_data 0002e99c d _oblate_aswfa_nocv_data (snip) </code></pre> <p>然而,我还不能解释它的缺失。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你试过用macports编译scipy吗?在</p> <pre><code>sudo port install scipy +universal </code></pre> <p>(当然,您必须使用相同的选项编译链的其余部分,<code>python</code>,<code>py26-numpy</code>)</p> <p>我得到:</p> ^{pr2}$ <p>然后,您可以使用macports维护人员用于自己编译的设置和知识。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
1 回答
如何添加表示整数的擦边字符串?
2 回答
如何添加要在Bokeh中使用的新font.ttf文件?
8 回答
如何添加要显示的矩阵XY轴编号和XY轴
8 回答
如何添加计数?
5 回答
如何添加计数器函数?
10 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
10 回答
如何添加计数器来跟踪while循环中的月份和年份?
9 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
10 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
3 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
7 回答
如何添加评论拉梅尔亚姆
8 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
6 回答
如何添加谷歌地点自动完成到Flask?
3 回答
如何添加超时、python discord bot
1 回答
如何添加超过1dp的检查
3 回答
如何添加距离方法
2 回答
如何添加跟随游戏的敌人精灵
5 回答
如何添加路径以便python可以找到程序?
5 回答
如何添加身份验证/安全性以使用happybase访问HBase?
4 回答