2012-05-07 12 views
5

Bir betiğe jpg dosyası yüklemek için QImage (veya bu konu için PyQt4'te herhangi bir şey) elde etmeye çalışıyorum. Ben bir jpg resmi bir script olarak yüklemek için nasıl elde edemedim herhangi bir bilgi, py2exe kullanarak derlenmiş ama bu kadar uzak bile alamıyorum. Bu sorunu çözmek için biraz zaman ayırmanızPyQt4 jpeg/jpg desteklenmeyen resim biçimi

, ben sitem-paketlerinde Looking ... boşuna ile bir kaç şey izlediyseniz/PyQt4/eklentileri/imageformats klasör Ben:

qgif4.dll, qico4 qtiff4.dll

QtGui.QImageReader.supportedImageFormats() göre, qtga4.dll, qsvg4.dll, qmng4.dll, qjpeg4.dll, .dll, bunu kullanabilirsiniz PyQt4 yükleme Gözat budur

[ PyQt4.QtCore.QByteArray ('bmp'), PyQt4.QtCore.QByteArray ('pbm'), PyQt4.QtCore.QByteArray ('pgm'), PyQt4.QtCore.QByteArray ('png'), PyQt4.QtCore.QByteArray ('s pm '), PyQt4.QtCore.QByteArray (' xbm '), PyQt4.QtCore.QByteArray (' xpm ')]

Ayrıca, qt.conf dosyasının ana python dizininde olduğundan emin oldum ve Bu

[yollar]

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

ben değilim

hiç şansım

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

ekleyerek denedim etti python 2.7.2, PyQt4 4.9.1 (her ikisi de 32b), bir windows 7 64b Home Premium'da çalışıyor.

Ayrıca, 4.8.1 ve 4.8.5 sürümlerini de denedim, ancak bunların hiçbiri jpg'yi desteklemedi. Kaybettim. Bunları desteklenmeye nasıl geri alabilirim?

+0

Garip. Benim için bu bir zamanlar OSX'de py2app ile paketlemeye geldiğinde bir endişe yaratmıştı, ama asla bir senaryo durumunda değildi. Eklentiyi her zaman düzgün bir şekilde bulmayı başardı. – jdi

+0

Vay, sadece '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'PyQt' dll' dosyalarından herhangi birini yükleyemiyor gibi görünüyor. Plugins = plugins''ü deneyebilir misiniz? Tam yol olmamalı. – Avaris

+0

Ben bir eklenti eklentileri verdim ve sonra '/ plugins', '/ plugins/imageformats', 'plugins/imageformats' denedim. hiçbir şey değil. – ooklah

cevap

6

Buna neden olabilecek iki farklı sorun var gibi görünüyor. Ve ikisine de girmişim gibi görünüyor.

1. PyQt4 yükleyicisini 'yönetici olarak' çalıştırmaya karar verdim, bu da sorunun bir kısmını çözmüş görünüyor. Bu yüzden her şeyin doğru şekilde çalışması için yönetici olarak çalıştırılması gerekiyor.

2nd. Tüm eklentilerin düzgün yüklenebilmesi için, her türlü görüntü yüklenmeden önce QApplication yapılmalıdır.

yüzden

app = QtGui.QApplication(sys.argv) 

ilk oluşturulması gerekir.

Benim komut ben bir yönetici olarak PyQt4 yüklü beri değişmedi

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

if __name__ == '__main__': 
    main() 

olarak çalışacak ama şimdi JPEG ve diğer her şeyi çalışır ve yükler.

Yapmaya çalıştığım şey, bir PyQt4 uygulaması tarafından çağrılacak bir komut dosyası oluşturmaktı, ancak kendi başına çalıştırılmayacaktı, dolayısıyla önce bir QApplcation oluşturmaya gerek yoktu.İhtiyaç olmasa bile,

http://article.gmane.org/gmane.comp.python.pyqt-pykde/7176/match=jpeg+plugin+not+loading yönetici olarak kurun ve daima QApplication oluşturun: Ben Başvuru için konu 2.

koştu nerede hangisi. Ayrıca

sadece boşta hangilerinin kullanılabileceğini görmek için kontrol eğer:

from PyQt4 import QtGui 
QtGui.QImageReader.supportedImageFormats() 

şeyi göstermez, hala çok umarım

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

Bu izini can sıkıcı oldu çalıştırmak için gereken Bu başkalarına yardımcı olacaktır.

+1

Bu yüzden, Windows üzerinde sanallaştırıcılar ile (global site paketlerinden envs site paketlerine kopyalanan PyQt4) kopyaladım - orijinalde belirtilen gibi qt.conf oluşturmak zorundaydım Scripts \ python.exe'nin yanındaki post - sonra her şey gerektiği gibi çalıştı! – Strayer

+0

Eklentileri QApplication oluşturmadan nasıl yükleyeceğini bilen varsa, lütfen buraya bir yorum ekleyin; QImage'ı bir yardımcı resim yükleme sınıfı olarak kullananlar için çok yararlı olurdu. – GaryO

+0

Maden, QApplication çağrısını __main__ içine koyana kadar çalışmayacaktı. Gösterdiğiniz gibi main() uygulamasında QApplication ile çalışmadı. Çok garip, ama main() kullanımının ortadan kaldırılması benim için düzeltildi. – panofish