py2exe bundle_files = 1 или 2 завершается неудачно - PullRequest
0 голосов
/ 18 января 2011

Мое приложение использует QGraphicsPixmapItem, и для того, чтобы оно могло загружать файлы JPEG, я поместил qjpeg4.dll в подкаталог 'imageformats' в каталоге 'dist'.
Это работает, но только до тех пор, пока 'bundle_files'опция имеет значение 3.
Если я установлю его на 1 или 2, qt4 (pyqt4) больше не сможет найти нужные библиотеки, и поэтому QGraphicsPixmapItems не будет виден.

setup.py:

from distutils.core import setup
import py2exe

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

1 Ответ

0 голосов
/ 18 января 2011

Вы должны быть в состоянии убедить py2exe включить dll, используя:

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

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

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

РЕДАКТИРОВАТЬ 1 : Вы можете попробовать использовать структуру каталогов, подобную этой ( source ):

  • yourapp.exe
  • [qt.conf] (необязательно? См. Ниже)
  • / плагинов
    • imageformats /
      • qjpeg4.dll

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

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

Что, по-видимому, должно работать нормально, если ядро ​​dll QtCore4.dll включено правильно (так как ему нужен этот .dll для интерпретации вашего файла qt.conf).

...