2011-01-18 2 views
0

В моем приложении используется QGraphicsPixmapItem, и чтобы он мог загружать jpeg-файлы, я поместил qjpeg4.dll в поддиректорию 'imageformats' в каталоге 'dist'.
Он работает, но только до тех пор, пока опция «bundle_files» установлена ​​на 3.
Если я установил его в 1 или 2, qt4 (pyqt4) больше не сможет найти необходимые DLL, и поэтому QGraphicsPixmapItems не отображается.py2exe bundle_files = 1 или 2 не работает

setup.py:

from distutils.core import setup 
import py2exe 

setup(
    options = {'py2exe': {'bundle_files': 1}}, 
    description = "", 
    name = "name", 
    windows = ["mainwindow.py"], 
    zipfile=None, 
    ) 

ответ

0

Вы должны быть в состоянии убедить py2exe включить DLL с помощью:

setup(
     # other options, 
     data_files=[('imageformats', 'qjpeg4.dll'), 
     #other options 
    ) 

Для дальнейшего использования, data_files должен выглядеть следующим образом (AFAIK) :

data_files = [ (dir1, [file1, file2, ...]), (dir2, [file3, file4, ...]), ...]

EDIT 1: Вы можете попробовать использовать структуру каталогов, как это (source):

  • yourapp.exe
  • [qt.conf] (по желанию? см пониже)
  • плагины/
    • imageformats/
      • qjpeg4.dll

И если , что не работает, here предлагает использовать qt.conf файл, который выглядит примерно так:

[Paths] 
Plugins = <directory containing the imageformats directory> 

Который, по-видимому, должны работать нормально до тех пор, как основной DLL QtCore4.dll был включен правильно (как это нуждается в этом .dll интерпретировать файл qt.conf).

+0

duplicateduplicate – ras

+0

Мне удалось убедить py2exe автоматически добавить dll в каталог dist/imageformats, используя data_files. К сожалению, qt4 все равно не видит. – ras

+0

Можете ли вы отправить сообщение об ошибке? – William

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