Я получаю следующую ошибку при запуске отладочной сессии в Eclipse для моего кода, который также использует Enthought Mayavi и PyQt. Вот журнал ошибок в консоли.API 'QString' уже установлен на версию 1 на Eclipse
pydev debugger: starting (pid: 2208) Traceback (most recent call last): File "D:\eclipse\plugins\org.python.pydev_3.7.1.201409021729\pysrc\pydevd.py",
line 2090, in debugger.run(setup['file'], None, None) File "D:\eclipse\plugins\org.python.pydev_3.7.1.201409021729\pysrc\pydevd.py", line 1547, in run pydev_imports.execfile(file, globals, locals) # execute the script File "D:\src\Candls_PyQt\src\application.py", line 10, in sip.setapi("QString",2) ValueError: API 'QString' has already been set to version 1
Вот мой фрагмент кода.
from traits.etsconfig.api import ETSConfig
ETSConfig.toolkit = 'qt4'
import sip
sip.setapi("QString",2)
sip.setapi("QVariant",2)
from PyQt4 import QtCore, QtGui, uic
Вы уверены, что ваша самая первая строка делает не приведет к каким-либо импортерам 'PyQt4'? Это обычно так - вызовы 'setapi' должны происходить до импорта PyQt. – sebastian
Я не знаю, затмение, но вы используете свой код в режиме pylab? Это установило бы бэкэнд графического интерфейса перед тем, как ваш фрагмент запустится. –