การตั้งค่า IPython Qtconsole ด้วย PyQt5

บน OSX 10.9 ฉันติดตั้ง Qt5 แล้ว ต่อมาฉันติดตั้ง Ipython, sip และ PyQt5 ทั้งหมดสร้างจากแหล่งที่มา นี่คือปัญหา: เมื่อฉันพยายามเรียกใช้ ipython qtconsole ฉันมีข้อผิดพลาดมากมายที่เกี่ยวข้องกับไฟล์ในไดเร็กทอรีนี้ (และโฟลเดอร์ย่อย)

/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 สองเวอร์ชันในเครื่องเดียว)


เพื่อความกระชับ ฉันจึงข้ามการโพสต์ข้อความแสดงข้อผิดพลาดแบบเต็ม โปรดแจ้งให้เราทราบหากฉันควรเพิ่มพวกเขาเพื่อให้เข้าใจสถานการณ์ดีขึ้น


person Pouya    schedule 20.06.2014    source แหล่งที่มา


คำตอบ (4)


ปัญหาอาจเกี่ยวข้องกับเส้นทางหลามของคุณ

ฉันมีปัญหาเดียวกันเกือบทั้งหมด ฉันติดตั้ง PyQt โดยใช้ Homebrew และฉันได้รับข้อความแสดงข้อผิดพลาดเดียวกัน ในที่สุดสิ่งที่แก้ไขปัญหาได้คือการเพิ่มบรรทัดต่อไปนี้ใน .bash_profile ของฉัน:

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

เนื่องจากฉันเป็นมือใหม่ จึงไม่สามารถช่วยเหลือคุณได้อีกต่อไปแต่หวังว่านี่จะช่วยแก้ปัญหาได้

person oxtay    schedule 24.06.2014
comment
ขอบคุณ แต่ฉันเกรงว่าเส้นทางจะไม่ใช่ปัญหาของฉัน เส้นทางของฉันถูกตั้งค่าเป็นตำแหน่งที่สร้าง PyQt จากแหล่งที่มาแล้ว ฉันคิดว่าปัญหาเป็นเพียงความเข้ากันได้ระหว่าง PyQt4 และ 5 แต่ก็ขอบคุณอีกครั้งนะ :) - person Pouya; 25.06.2014
comment
สิ่งนี้เกิดจากการผสมเส้นทางต่างๆ ของหลาม สิ่งที่ติดตั้งด้วย pip และ brew ไม่พบซึ่งกันและกันเว้นแต่จะตั้งค่า pythonpath อย่างถูกต้อง โปรดทราบว่าสิ่งนี้เปราะบางมากเนื่องจากระบุอย่างชัดเจนว่าจะค้นหาแพ็คเกจได้ที่ไหน (qt, matplotlib ...) - person fricke; 12.08.2014
comment
ในที่สุด พระเยซูพระเจ้า สิ่งนี้ยังใช้งานได้ภายใน pyenv virtualenvs ขอบคุณ - person C. Alan Zoppa; 18.01.2015

ฉันรู้ว่ามันเก่ามาก แต่เมื่อเร็วๆ นี้ฉันประสบปัญหาในการตั้งค่า PyQt5

ปัญหาคือ PyQt5 จะติดตั้ง แต่โมดูลย่อยบางโมดูลจะไม่ติดตั้ง เช่น ลอง

import PyQt5 #works
from PyQt5 import * # might fail

หากคำสั่งที่สองล้มเหลว แสดงว่าคุณมีปัญหากับการตั้งค่า PyQt5 และคุณต้องให้ความสำคัญกับเรื่องนั้น

โดยเฉพาะ ipython+qt จะพยายามนำเข้าสิ่งต่อไปนี้

from PyQt5 import QtCore, QtSvg, QtWidgets, QtGui

หากโมดูลย่อยเหล่านี้เสียหายหรือหายไป การเปิดใช้งานคอนโซล qt จะ เงียบ ล้มเหลว

สำหรับฉัน ปรากฎว่า ตัวติดตั้ง PyQt5 ไม่สามารถสร้างการเชื่อมโยง QtSvg ซึ่ง ipython พยายาม เพื่อโหลดจาก PyQt5 เมื่อคุณรัน configure.py ให้ใช้ตัวเลือก -w แล้วคุณจะเห็นรายละเอียดทั้งหมดของบิลด์ ทำให้คุณสามารถระบุตำแหน่งที่การติดตั้งล้มเหลว

ในกรณีของฉัน Google เล็กน้อยและฉันพบว่าฉันขาด QtSvg lib ซึ่งสามารถดึงเข้ามาได้อย่างง่ายดาย การซื้อคืน

person dermen    schedule 26.01.2016

การตั้งค่าตัวแปรสภาพแวดล้อม QT_API=pyqt5 แก้ไขปัญหาเดียวกันสำหรับฉัน

person vvch    schedule 31.01.2015
comment
หลังจากนี้ ฉันได้กำหนด bash-alias alias ipy='export QT_API=pyqt && ipython qtconsole --profile knb --pylab=inline' โดยใช้โปรไฟล์ของฉันเอง - person knb; 01.06.2015
comment
vvch คุณเพิ่มบรรทัดใด (ในไฟล์ใด) เพื่อให้ การตั้งค่าสภาพแวดล้อม vairable QT_API=pyqt5 สำเร็จ - person Jacob Irwin; 13.12.2015
comment
@JacobIrwin ในไฟล์ .profile หรือ .bash_profile หรือไฟล์ใด ๆ ที่ตัวแปรสภาพแวดล้อมของคุณเริ่มต้นได้ หรือคุณอาจสร้างนามแฝงทุบตีตามที่แนะนำข้างต้น - person vvch; 14.12.2015
comment
แต่ ipython เวอร์ชันล่าสุดไม่มีปัญหานี้ ดังนั้นคุณจึงสามารถอัปเดตได้ - person vvch; 14.12.2015

ฉันมีปัญหาเดียวกัน แม้ว่า brew จาก ipython ล่าสุดจะมี ImportError รวมอยู่ด้วย PyQt5 (พร้อมกับ PyQt4 และ PySide) ดังนั้นหากก่อนหน้านี้มันใช้งานไม่ได้กับ PyQt5 ตอนนี้ก็จะใช้งานได้แล้ว

การเพิ่ม PYTHONPATH ที่ถูกต้องเป็น .bash_profile ช่วยแก้ไขให้ฉันด้วย แม้แต่ใน virtualenv ของฉันก็ตาม (ฉันไม่มีชื่อเสียงในการโหวตหรือแสดงความคิดเห็นเกี่ยวกับคำตอบของ oxtay ซึ่งจะเหมาะสมกว่า ... )

person Cody    schedule 03.02.2015