在OSX 10.8.2上使用pip和Python 2.7.3的Brew安装安装了FiPy,我运行了以下示例测试代码:
from fipy import *
mesh = Grid3D(nx=50, ny=100, nz=10, dx=0.1, dy=0.01, dz=0.1)
x, y, z = mesh.cellCenters
xyzVar = CellVariable(mesh=mesh, name=r"x y z", value=x * y * z)
k = Variable(name="k", value=0.)
viewer = MayaviClient(vars=numerix.sin(k * xyzVar), limits={'ymin': 0.1, 'ymax': 0.9}, datamin=-0.9, datamax=2.0, title="MayaviClient test")
for kval in range(10):
k.setValue(kval)
viewer.plot()
viewer._promptForOpinion()
生成了以下错误:
File "/usr/local/lib/python2.7/site-packages/pyface/qt/__init__.py", line 17, in prepare_pyqt4
sip.setapi('QString', 2)
ValueError: API 'QString' has already been set to version 1
我决定通过在prepare_pyqt4中评论sip.setapi('QString',2)和sip.setapi('QVariant',2)来看到我能走多远。这个简单的黑客通过了版本控制问题,但提出了一个新问题。
File "/Library/Python/2.7/site-packages/fipy/viewers/mayaviViewer/mayaviDaemon.py", line 79, in <module>
from enthought.mayavi.plugins.app import Mayavi
ImportError: No module named enthought.mayavi.plugins.app
现在似乎FiPy Mayavi观众缺少一个模块。
我认为我的网站包也应该都在同一个位置。看起来pip安装到/Library/Python/2.7/site-packages,而brew安装到/usr/local/lib/python2.7/site-packages,这是我必须解决的问题(我认为问题在于pip)。
我的问题是如何使用Mayavi进行干净的FiPy安装(不产生这些错误)并修复我的网站包?
答案 0 :(得分:0)
我不确定是什么原因导致了您的问题。我在Mac OS X 10.6.8下运行Homebrew安装,Mayavi为我工作(包括你的示例脚本)。我在http://matforge.org/fipy/wiki/InstallFiPy/MacOSX/HomeBrew
描述了我的安装过程我能猜到的唯一问题就是你说你的点子安装到/Library/Python/2.7/site-packages
。我猜你正在使用系统python而不是brew安装的系统。我最后一次这样做,我不得不brew install python
然后easy_install pip
,但是https://github.com/mxcl/homebrew/wiki/Homebrew-and-Python听起来好像你现在用自己的酿造蟒蛇自动获得pip。
尝试
which python
which easy_install
which pip