Formato de imagen no compatible con jpeg / jpg PyQt4

Estoy intentando que QImage (o cualquier cosa en PyQt4, para eso) cargue un archivo jpg en un script. No he podido encontrar ninguna información sobre cómo hacer que cargue una imagen jpg como un script, mucho para comstackr usando py2exe pero no puedo llegar tan lejos.

Pasando algo de tiempo para resolver esto, he seguido algunas cosas sin ningún resultado … Buscando en la carpeta de mi sitio-paquetes / PyQt4 / plugins / imageformats tengo:

qgif4.dll, qico4.dll, qjpeg4.dll, qmng4.dll, qsvg4.dll, qtga4.dll, qtiff4.dll

De acuerdo con QtGui.QImageReader.supportedImageFormats (), esto es lo que puede usar mi instalación de pyqt4

[PyQt4.QtCore.QByteArray (‘bmp’), PyQt4.QtCore.QByteArray (‘pbm’), PyQt4.QtCore.QByteArray (‘pg’ ‘), las piezas de recambio y las piezas de recambio. (‘ppm’), PyQt4.QtCore.QByteArray (‘xbm’), PyQt4.QtCore.QByteArray (‘xpm’)]

También me aseguré de que mi archivo qt.conf esté en el directorio principal de python y tenga esto

[Caminos]

Prefix = C:/Python27/Lib/site-packages/PyQt4 Binaries = C:/Python27/Lib/site-packages/PyQt4 

He intentado agregar

 Plugins = C:/Python27/Lib/site-packages/PyQt4/plugins/imageformats Plugins = C:/Python27/Lib/site-packages/PyQt4/plugins 

sin suerte

Estoy ejecutando python 2.7.2, con PyQt4 4.9.1 (ambos 32b), en un Windows 7 64b Home Premium.

También probé las versiones 4.8.1 y 4.8.5 (que tenía disponibles) pero ninguna de ellas era compatible con jpg. Estoy en una pérdida. ¿Cómo puedo hacer que estos sean respaldados?

Hay dos problemas diferentes que parece que pueden contribuir a causar esto. Y parece que me encontré con ambos.

1er. Di la ejecución del instalador de PyQt4 ‘como administrador’, que parece haber resuelto parte del problema. Por lo tanto, debe ejecutarse como administrador para que todo funcione correctamente.

2do. Para que todos los complementos se carguen correctamente, la aplicación Q debe realizarse primero antes de que se cargue cualquier tipo de imagen.

asi que

 app = QtGui.QApplication(sys.argv) 

necesita ser creado primero

Mis scripts se ejecutan como

 def main(): app = QtGui.QApplication(sys.argv) win = window() win.display() sys.exit(app.exec_()) if __name__ == '__main__': main() 

que no ha cambiado desde que instalé PyQt4 como administrador, pero ahora funciona y carga archivos JPEG y todo lo demás.

Lo que estaba tratando de hacer era crear un script que iba a ser llamado por una aplicación PyQt4 pero no se ejecutaría solo, por lo que no era necesario crear una QApplcation primero. Que es donde me encontré con el problema # 2

Para referencia: http://article.gmane.org/gmane.comp.python.pyqt-pykde/7176/match=jpeg+plugin+not+loading

Instale como administrador y cree siempre la QApplication, incluso si no la necesita.

también si solo está comprobando para ver qué hay disponible en inactivo:

 from PyQt4 import QtGui QtGui.QImageReader.supportedImageFormats() 

No se mostrará todo, todavía falta correr

 from PyQt4 import QtGui import sys app = QtGui.QApplication(sys.argv) QtGui.QImageReader.supportedImageFormats() 

Esto fue molesto de rastrear, así que espero que esto sea útil para otros.

En caso de que alguien esté buscando la carga de complementos, he creado una respuesta para una pregunta más adecuada aquí que le permite, básicamente, colocar complementos en cualquier carpeta compartida de la red.

En resumen, use QtCore.QCoreApplication.addLibraryPath() lugar del archivo qt.conf.