Menyiapkan IPython Qtconsole dengan PyQt5

Pada OSX 10.9, saya telah menginstal Qt5. Kemudian saya menginstal Ipython, sip dan PyQt5 semuanya dibuat dari sumber. Sekarang masalahnya: ketika saya mencoba menjalankan ipython qtconsole, saya mendapatkan banyak kesalahan terkait dengan file di direktori ini (dan subfoldernya)

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

diikuti oleh

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']

Saya berasumsi masalahnya adalah saya memiliki PyQt5, bukan PyQt4. Apakah ini masalahnya atau saya melewatkan hal lain?

Apakah saya bisa mendapatkan qtconsole dengan PyQt5? Jika tidak, apa cara termudah untuk melakukannya? (sebaiknya, metode yang tidak melibatkan dua versi perpustakaan Qt pada satu mesin).


Demi singkatnya saya melewatkan posting pesan kesalahan lengkap. Tolong beri tahu saya jika saya harus menambahkannya karena pemahaman situasinya yang lebih baik.


person Pouya    schedule 20.06.2014    source sumber


Jawaban (4)


Masalahnya mungkin terkait dengan jalur python Anda.

Saya memiliki masalah yang hampir sama persis. Saya telah menginstal PyQt menggunakan Homebrew dan saya mendapatkan pesan kesalahan yang sama. Akhirnya yang memecahkan masalah adalah menambahkan baris berikut ke .bash_profile saya:

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

Karena saya sendiri seorang pemula, saya tidak dapat membantu Anda lebih jauh tetapi saya harap ini menyelesaikan masalah.

person oxtay    schedule 24.06.2014
comment
Terima kasih, tapi saya khawatir jalannya bukan masalah saya. Jalur saya sudah disetel ke lokasi tempat PyQt dibangun dari sumber. Saya berasumsi masalahnya hanya kompatibilitas antara PyQt4 dan ke-5. Tapi sekali lagi terima kasih :) - person Pouya; 25.06.2014
comment
ini disebabkan oleh pencampuran jalur yang berbeda untuk python. Hal-hal yang diinstal dengan pip dan brew tidak akan menemukan satu sama lain kecuali pythonpath disetel dengan benar. Perhatikan bahwa ini sangat rapuh karena secara eksplisit menyatakan di mana menemukan paket (qt, matplotlib ...) - person fricke; 12.08.2014
comment
Yang terakhir, Yesus Tuhan. Ini bahkan berfungsi di dalam pyenv virtualenvs. Terima kasih. - person C. Alan Zoppa; 18.01.2015

Saya tahu ini sudah sangat lama, tetapi baru-baru ini saya mengalami masalah saat menyiapkan PyQt5.

Masalahnya adalah PyQt5 dapat diinstal, tetapi beberapa sub modul tidak dapat diinstal. Misalnya coba

import PyQt5 #works
from PyQt5 import * # might fail

Jika perintah kedua gagal, maka Anda memiliki masalah dengan pengaturan PyQt5, dan Anda harus fokus pada hal itu.

Secara khusus, ipython+qt akan mencoba mengimpor yang berikut ini

from PyQt5 import QtCore, QtSvg, QtWidgets, QtGui

Jika salah satu sub-modul ini rusak/hilang, peluncuran konsol qt akan diam-diam gagal.

Bagi saya ternyata pemasang PyQt5 gagal membuat QtSvg pengikatan, yang coba dilakukan oleh ipython untuk memuat dari PyQt5. Saat Anda menjalankan configure.py, gunakan opsi -w dan Anda akan melihat semua detail build, memungkinkan Anda menentukan dengan tepat di mana instalasi gagal.

Dalam kasus saya, sedikit googling dan saya menemukan bahwa saya kehilangan QtSvg lib, yang dapat ditarik dengan mudah dari repo.

person dermen    schedule 26.01.2016

Menyetel variabel lingkungan QT_API=pyqt5 memecahkan masalah yang sama untuk saya.

person vvch    schedule 31.01.2015
comment
Setelah ini, saya telah mendefinisikan bash-alias alias ipy='export QT_API=pyqt && ipython qtconsole --profile knb --pylab=inline', menggunakan profil saya sendiri - person knb; 01.06.2015
comment
vvch, baris apa (ke file mana) yang Anda tambahkan untuk menyelesaikan pengaturan lingkungan yang tersedia QT_API=pyqt5? - person Jacob Irwin; 13.12.2015
comment
@JacobIrwin Di file .profile atau .bash_profile atau file apa pun tempat variabel lingkungan Anda diinisialisasi. Atau Anda dapat membuat alias bash seperti yang disarankan di atas - person vvch; 14.12.2015
comment
tetapi ipython versi terbaru tidak mengalami masalah ini, jadi Anda cukup memperbaruinya - person vvch; 14.12.2015

Saya mempunyai masalah yang sama, meskipun dengan brew terbaru dari ipython ImportError termasuk PyQt5 (bersama dengan PyQt4 dan PySide). Jadi jika sebelumnya tidak berfungsi dengan PyQt5, sekarang bisa.

Menambahkan PYTHONPATH yang benar ke .bash_profile memperbaikinya untuk saya, bahkan di virtualenv saya. (Saya tidak memiliki reputasi untuk memberi suara positif atau mengomentari jawaban oxtay, jika ini lebih tepat...)

person Cody    schedule 03.02.2015