2014-06-20 2 views
6

На OSX 10.9 у меня установлен Qt5. Позже я установил Ipython, sip и PyQt5 для сборки из источника. Теперь вот проблема: когда я пытаюсь запустить ipython qtconsole, у меня есть куча ошибок, связанных с файлами в этом каталоге (и его подкаталогов)Настройка IPython Qtconsole с PyQt5

/Library/Python/2.7/site-packages/IPython/ 

с последующим

ImportError: 
    Could not load requested Qt binding. Please ensure that 
    PyQt4 >= 4.7 or PySide >= 1.0.3 is available, 
    and only one is imported per session. 

    Currently-imported Qt library: None 
    PyQt4 installed:     False 
    PySide >= 1.0.3 installed:  False 
    Tried to load:     ['pyside', 'pyqt'] 

Я принимаю проблема в том, что у меня есть PyQt5 вместо PyQt4. Это проблема, или я пропустил что-то еще?

В любом случае, у меня может быть qtconsole с PyQt5? Если нет, то какой самый простой способ сделать это? (предпочтительно, метод, который не включает в себя наличие двух версий библиотеки Qt на одной машине).


Для краткости я пропустил отправку полного сообщения об ошибке. Пожалуйста, дайте мне знать, если я должен добавить их из лучшего понимания ситуации.

ответ

3

Проблема может быть связана с вашим путём python.

У меня была почти такая же проблема. Я установил PyQt, используя Homebrew, и я получал такое же сообщение об ошибке. Наконец, что решена проблема, добавив следующую строку в моей .bash_profile:

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH 

Поскольку я новичок сам, я не могу вам помочь и дальше, но я надеюсь, что это решает проблему.

+0

Спасибо, но я боюсь, что путь не является моей проблемой. Мой путь уже установлен в местоположение, где PyQt построен из источника. Я предполагаю, что проблема заключается только в совместимости между PyQt4 и 5th. Но в любом случае еще раз спасибо ':)' – Pouya

+0

, это вызвано смешиванием разных путей для python. Вещи, установленные с пипсом и варевом, не находят друг друга, если pythonpath не установлен правильно. Обратите внимание, что это очень хрупкое, поскольку в нем явно указано, где найти пакеты (qt, matplotlib ...) – fricke

+0

Наконец, Иисус Бог. Это даже работает внутри pyenv virtualenvs. Спасибо. –

1

Настройка переменной окружения QT_API = pyqt5 решила ту же проблему для меня.

+0

После этого я определил bash-alias 'alias ipy = 'export QT_API = pyqt && ipython qtconsole --profile knb --pylab = inline'', используя мой собственный профиль – knb

+1

vvch, какую строку (в какой файл) вы добавили, чтобы выполнить ** настройку среды vairable QT_API = pyqt5 **? –

+1

@JacobIrwin В файле .profile или .bash_profile или в любом файле, где инициализируются переменные среды. Или вы можете создать псевдоним bash, как предложено выше – vvch

1

У меня была та же проблема, хотя и с самым последним brew из ipythonImportError включены PyQt5 (наряду с PyQt4 и PySide). Поэтому, если раньше он не работал с PyQt5, он делает это сейчас.

Добавление правильного PYTHONPATH к .bash_profile исправлено для меня, даже в моем virtualenv. (У меня нет репутации, чтобы проголосовать или прокомментировать ответ Oxtay, где это было бы более подходящим ...)

1

Я знаю, что это действительно старый, но у меня недавно возникла проблема с настройкой PyQt5.

Проблема заключалась в том, что PyQt5 будет устанавливать, но некоторые из модулей не будут. Например попробовать

import PyQt5 #works 
from PyQt5 import * # might fail 

Если вторая команда потерпит неудачу, то у вас есть проблемы с установкой PyQt5, и вы должны сосредоточиться на этом.

В частности, IPython + Qt будет пытаться импортировать следующий

from PyQt5 import QtCore, QtSvg, QtWidgets, QtGui 

Если какой-либо из этих суб-модулей сломаны/отсутствует СПОКОЙНЫЕ запуск консоли будет спокойно потерпеть неудачу.

Для меня оказалось, что PyQt5 installer не удалось установить привязки QtSvg, которые ipython пытается загрузить с PyQt5. Когда вы запустите configure.py, используйте опцию -w, и вы увидите все детали сборки, позволяющие точно определить, где происходит сбой установки.

В моем случае, немного googling, и я узнал, что мне не хватает QtSvg lib, который можно легко извлечь из репозиториев.

Смежные вопросы