1

我在 ubuntu 上安装 pysparse 时遇到问题。我安装了包 python-sparse,但是在运行文档中的示例代码时

from pysparse.sparse import spmatrix
from pysparse.direct import superlu
import numpy
n = 100
A = poisson2d_sym_blk(n)
b = numpy.ones(n*n)
x = numpy.empty(n*n)
LU = superlu.factorize(A.to_csr(), diag_pivot_thresh=0.0)
LU.solve(b, x)

我收到错误消息

Traceback (most recent call last):
  File "sparse2.py", line 1, in <module>
    from pysparse.sparse import spmatrix
ImportError: No module named sparse

我也试过跑步

$ pip install pysparse
Requirement already satisfied: pysparse in /usr/lib/python2.6/dist-packages
Installing collected packages: pysparse
Successfully installed pysparse

为什么文档中的示例代码不起作用?

谢谢!

4

1 回答 1

1

我复制了您在 Ubuntu v11.10 上遇到的错误,您的代码看起来就像 pysparse 网站 ( http://pysparse.sourceforge.net/fact.html ) 中的示例代码。

可能的原因:

  • 该示例很旧,并且自编写示例以来 pysparse 模块布局已更改(很可能)
  • pysparse Ubuntu 包的作者/维护者可能会更改模块布局,从而导致导入路径不同。

当我在模块上运行 dir() 以查看模块的命名空间时,我看不到“稀疏”或“直接”名称,但我确实直接看到了类。

$> python

Python 2.7.2+ (default, Jul 20 2012, 22:12:53)

>>> import pysparse

>>> dir(pysparse)

['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', 'itsolvers', 'jdsym', 'os', 'precon', 'sparray', 'spmatrix', 'superlu', 'umfpack']

将您的导入语句更改为:

from pysparse import spmatrix

from pysparse import superlu

并且测试代码应该可以工作。

于 2012-10-21T18:44:09.600 回答