2015-03-15 2 views
0

Программа показывает файлы png, но не показывает файлы jpg.
Скриншоты из моей программы, с помощью PNG/JPG файлы:
PNG http://i.stack.imgur.com/xw4vQ.png
JPG http://i.stack.imgur.com/R5T9q.png
Если не компилируется с py2exe, программа работает нормально и показывает все форматы.
Так что я думаю, что это проблема py2exe.Скомпилирован с программой py2exe PyQt4 не читает файлы «jpg»


я в обоих случаях этот код:
(pic является QLabel, picLine некоторые Layout)

px = QtGui.QPixmap(pic_src) 
pic.setPixmap(px) 
picLine.addWidget(pic) 

пытался px.isNull() - возвращает True
так px пусто как-то
глава файл python:

# -*- coding: utf-8 -*- 
from PyQt4 import QtGui, QtCore 
import os, pyaudio, wave 

setup.py:

from distutils.core import setup 
import py2exe 

setup(
    name="name", 
    version="1", 
    author="Columpio", 
    windows=[{"script": "name.py", 
       "icon_resources": [(0, "icon.ico")]}], 
    data_files=[<here long list of files goes>], 
    options={"py2exe": {"includes": ["os", "sip", "sys", "PyQt4", "pyaudio", 
            "wave"], 
         "optimize": 2, 
         "bundle_files": 2 
         } 
      }, 
    zipfile=None 
    ) 

Извините за ужасный стиль вопрос - я очень болен в настоящее время.

+0

Если 'px' пуст, вы должны проверить' pic_src' на самом деле указывает на изображение. Кстати, изображения, которые вы разместили, являются «png». Вы конвертировали jpg в png? Если это так, вы на самом деле ** конвертировали ** это или просто переименовали имя файла? Это может также вызвать проблемы с переименованием файла. –

+0

@a_guest эти фотографии - скриншоты: D сначала показывает, как работает png, второй - как работает jpg. pic_src acrually указывает на изображение. обе фотографии изначально находятся в jpg и png. Проблема в том, что jpg не является сырыми данными и png. Затем я попробовал bmp (необработанные данные тоже), и он тоже не работал. Я полностью застрял. Я могу найти зависимость от того, какие форматы pyqt + py2exe программы могут читать, а какие нет. Вот почему я спрашиваю здесь. – Columpio

+0

Просто чтобы убедиться, что мы говорим об одном и том же: второй pic, который вы разместили здесь, также png. Я не вижу никакого jpg. Помимо этого: вы пробовали код без компиляции с py2exe? Можете ли вы прочитать jpg при запуске скрипта? Для pyqt не должно иметь значения, находится ли изображение в формате png или jpg (подразумевая, что изображение действительно находится в допустимом состоянии). –

ответ

0

Удостоверьтесь, что проблема заключается в том, что код PyQt в интерпретаторе Python может видеть плагины форматов изображений QT, но исполняемый файл, созданный py2exe, не может. Плагины находятся в каталоге plugins внутри вашего каталога сайтов сайтов Python.

Это легко исправить: самый простой способ - просто скопировать каталог imageformats в тот же каталог, что и исполняемый файл.

Я использую этот код в своей setup.py, но это для PySide. Я думаю, что PyQt4 один более или менее то же самое: заменить PySide с PyQt4:

ifpath = os.path.join(sys.prefix,"Lib","site-packages","PySide","plugins","imageformats") 

distutils.dir_util.copy_tree(ifpath,dist_dir) 

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

  • Нет связанных вопросов^_^