回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我无法从Spyder IDE中运行/使用Mayavi库。我已经在下面描述了这个问题。任何帮助都是非常有用的。(非常感谢您的事先告知。)</p>
<p><strong>重现问题的步骤:</strong></p>
<ol>
<li>只需在脚本中导入Mayavi库(例如使用“import Mayavi.mlab as mlab”)并执行该脚本就会重现此问题。</li>
<li>我在这里包含了一个测试代码(请注意,该代码是来自Mayavi网站的示例代码)来重现问题:</li>
</ol>
<h2>代码</h2>
<pre><code>from numpy import sin, cos, mgrid
import mayavi.mlab as mmlab
def f(x,y):
return sin(x + y) + sin(2*x - y) + cos(3*x + 4*y)
x,y = mgrid[-7.:7.05:0.01, -5.:5.05:0.05]
z = f(x,y)
s = mmlab.contour_surf(x,y,z)
mmlab.show()
</code></pre>
<p><strong>预期输出和错误:</strong></p>
<p>预期输出:带有图形的Mayavi图形窗口。
相反,我看到的是控制台窗口中的以下值错误(为了明确起见,我将包含完整的消息序列):</p>
<p><em>————————————————————————————————————————————————————————————————</p>
<pre><code>Traceback (most recent call last):
File "C:\PROGRAMSANDEXPERIMENTS\PYTHON\MayaviScripts\Learning\testMayavi.py", line 2, in <module>
import mayavi.mlab as mmlab
File "C:\Python27\lib\site-packages\mayavi\mlab.py", line 27, in <module>
from mayavi.tools.camera import view, roll, yaw, pitch, move
File "C:\Python27\lib\site-packages\mayavi\tools\camera.py", line 25, in <module>
from engine_manager import get_engine
File "C:\Python27\lib\site-packages\mayavi\tools\engine_manager.py", line 12, in <module>
from mayavi.preferences.api import preference_manager
File "C:\Python27\lib\site-packages\mayavi\preferences\api.py", line 4, in <module>
from preference_manager import preference_manager
File "C:\Python27\lib\site-packages\mayavi\preferences\preference_manager.py", line 29, in <module>
from traitsui.api import View, Group, Item
File "C:\Python27\lib\site-packages\traitsui\api.py", line 35, in <module>
from .editors.api import (ArrayEditor, BooleanEditor, ButtonEditor,
File "C:\Python27\lib\site-packages\traitsui\editors\__init__.py", line 22, in <module>
from .api import (toolkit, ArrayEditor, BooleanEditor, ButtonEditor,
File "C:\Python27\lib\site-packages\traitsui\editors\api.py", line 10, in <module>
from .code_editor import CodeEditor
File "C:\Python27\lib\site-packages\traitsui\editors\code_editor.py", line 36, in <module>
class ToolkitEditorFactory ( EditorFactory ):
File "C:\Python27\lib\site-packages\traitsui\editors\code_editor.py", line 48, in ToolkitEditorFactory
mark_color = Color( 0xECE9D8 )
File "C:\Python27\lib\site-packages\traits\traits.py", line 487, in __call__
return self.maker_function( *args, **metadata )
File "C:\Python27\lib\site-packages\traits\traits.py", line 1183, in Color
return ColorTrait( *args, **metadata )
File "C:\Python27\lib\site-packages\traitsui\toolkit_traits.py", line 7, in ColorTrait
return toolkit().color_trait( *args, **traits )
File "C:\Python27\lib\site-packages\traitsui\toolkit.py", line 109, in toolkit
_toolkit = _import_toolkit(ETSConfig.toolkit)
File "C:\Python27\lib\site-packages\traitsui\toolkit.py", line 51, in _import_toolkit
return __import__( name, globals=globals(), level=1 ).toolkit
File "C:\Python27\lib\site-packages\traitsui\qt4\__init__.py", line 18, in <module>
import pyface.qt
File "C:\Python27\lib\site-packages\pyface\qt\__init__.py", line 35, in <module>
prepare_pyqt4()
File "C:\Python27\lib\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
</code></pre>
<p><em>—————————————————————————————————————————————————</p>
<p><strong>我的环境如下:</strong></p>
<p>至少在以下两种环境中观察到此问题:</p>
<h2>环境1:</h2>
<p>描述:Spyder和所有其他组件是使用Pythonxy发行版(Py(x,y)-2.7.2.3.exe)在Windows7 32位计算机上安装的。
Spyder版本:2.1.9
Python版本:2.7.2(32位)
Qt版本:4.7.4,PyQt4(API v1)4.8.6在Windows上
Mayavi版本:4.1.0</p>
<h2>环境2:</h2>
<p>描述:在运行64位Windows7的单独计算机上,我安装了64位版本的EnthoughtEPD发行版。所以它运行的是2.7.3(x64)版本的Python发行版。由于EPD软件包不包括Spyder,所以我在安装PyQt GPLv4.9.4之后手动安装了Spyder。<br/>
Spyder版本:2.1.11
Python版本:2.7.3(64位)
Qt版本:4.8.2,PyQt4(API v2)4.9.4(在Windows上)
Mayavi版本:4.2.0</p>
<p><strong>附加信息:</strong></p>
<p>我确信代码是正确的,因为脚本在“outside”spyder环境中执行时会产生预期的输出。例如,使用IPython shell。</p>
<p>谢谢你。</p>