Skip to main content
 首页 » 编程设计

无法使用 macports 安装导入 Python scipy 模块

2025年05月04日12duanxz

我刚刚重新安装了 OSX Lion 并决定使用 macports 来获取更新的 python,以及 numpy、scipy、matplotlib、ipython 等。经过一些大惊小怪之后,一切看起来都正确安装在/opt/文件夹中,以及 numpy、matplotlib和 ipython 运行正常,但是当我尝试在 scipy 中导入模块时,我遇到了一个似乎回到稀疏模块的失败:

>>> import scipy.sparse as sparse 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/sparse/__init__.py", line 175, in <module> 
from csr import * 
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/sparse/csr.py", line 12, in <module> 
from sparsetools import csr_tocsc, csr_tobsr, csr_count_blocks, \ 
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/sparse/sparsetools/__init__.py", line 4, in <module> 
from csr import * 
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/sparse/sparsetools/csr.py", line 25, in <module> 
_csr = swig_import_helper() 
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/sparse/sparsetools/csr.py", line 21, in swig_import_helper 
_mod = imp.load_module('_csr', fp, pathname, description) 
ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/sparse/sparsetools/_csr.so, 2): Symbol not found: ___emutls_get_address 
  Referenced from: /opt/local/lib/gcc45/libstdc++.6.dylib 
  Expected in: /usr/lib/libSystem.B.dylib 
 in /opt/local/lib/gcc45/libstdc++.6.dylib 

导入 scipy.stats 或类似的东西最终会出现在同一个地方。我搜索了一堆并尝试修复各种 PATH 变量(在 python 解释器中和外部),以及隐藏默认的 python 安装(s?主库中的那个和/usr/中的那个有什么区别? ) 并重新安装 scipy 但这什么也没做。

我对这些东西不是很熟悉或不太舒服 - 在我删除和重新安装之前我正在使用 EPD,但是在让新包识别它时遇到了问题。我将 python 用于科学的东西,因此并没有真正理解它的胆量!因此,非常感谢假设我几乎不了解 PATH 变量是什么的答案。

所以 (a) 是否有一种简单的方法来修复上面发生的任何事情? (b) 我应该删除一些东西并从头开始吗? (c) 是否有一种非痛苦的方式来获取 scipy、numpy、matplotlib 和 ipython(加上 qtconsole 和 html 笔记本所需的东西),并能够在正确的位置安装新包?如果可能的话,我是否应该回到 EPD(他们的学术电子邮件对我来说失败了,所以我继续前进)?

请您参考如下方法:

你可以试试 Enthought Python Free distribution ,它是免费的,通常很容易安装,并且带有 Numpy、Scipy、matplotlib 等。