使用macports install无法导入Python scipy模块

时间:2012-09-13 19:54:02

标签: python osx-lion scipy macports

我刚刚重新安装了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或类似的东西最终会在同一个地方。我已经google了一堆并尝试修复各种PATH变量(在python解释器和out中),以及隐藏默认的python安装(s?主库中的那个和/ usr /中的那个之间有什么区别? )并重新安装scipy,但没有做任何事情。

我对这些东西不太熟悉或不熟悉 - 在我擦拭并重新安装之前,我正在使用EPD,但是在遇到新包装时遇到了问题。我使用python作为科学的东西,因此不是真正理解它的胆量!所以答案假设我几乎不了解PATH变量是什么,非常感谢。

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

1 个答案:

答案 0 :(得分:1)

你可以试试 Enthought Python Free distribution,它是免费的,通常是一个简单的安装,并附带Numpy,Scipy,matplotlib等。