Question

Je suis en train de compiler un simple script que j'ai écrit à l'aide de Python3 et PyQt4 à l'aide de cx_Freeze, mais j'ai trois problèmes que je ne peux pas comprendre.

  1. Je ne peux pas obtenir les icônes s'affichent.Je suis à l'aide d'un fichier de ressources compilés pour elle, c'est à direl'importation d'un .py contenant les ressources, et j'ai essayé de suivre les conseils ici, en copiant les formats images dossier de mon dossier de projet, mais rien ne semble fonctionner.

  2. Je ne suis pas à l'aide de severl python modules, y compris la tcl et ttk j'ai donc ajouté à la excludes option.Cependant, ils semblent toujours être ajouté.

  3. Lorsque j'essaie de compiler avec base='Win32GUI' l'exécution de la créé exe soulève une exception: 'NoneType' has no attribute 'encoding'

Je suis assez sûr qu'il y a juste quelque chose de mal avec mon script d'installation depuis le cx_Freeze la documentation n'est pas très prolixe, donc j'espère que quelqu'un pourra signaler le problème.Voici le script d'installation.Je ne vais pas poster le script je suis à la compilation, car il est assez long, mais si c'est nécessaire, je vais essayer de créer une version concise pour les tests.

from cx_Freeze import setup, Executable

exe = Executable(
    script='cconvert.py',
    base='Win32GUI'
)

options = dict(
    excludes=['curses', 'email', 'tcl', 'ttk']
)

setup(
    name="Coord Convertor",
    version="0.1",
    description="A Coordinate converter from DMS to DD",
    requires=['pyqt4 (>=4.8)', 'dtlibs (>=0.4.1)'],
    data_files=['imageformats'],
    executables=[exe],
    options={'build-exe': options}
)
Était-ce utile?

La solution

(Remarque assurez-vous d'environ 1.)

2:Dans les options={"build-exe'..., je pense qu'elle doit être build_exe (trait de soulignement à la place du tableau de bord).

3:Êtes-vous essayer d'accéder à quelque chose comme sys.stdout.encoding n'importe où? sys.stdout sera nul lorsque vous utilisez le Win32GUI de base.Même un print() appel pourrait déclencher que.

Autres conseils

Résolu.En plus de Thomas pointeurs, j'ai besoin des formats images' sous 'inclure des fichiers dans les options, pas "data_files'.Mon script final ressemble à ceci:

from cx_Freeze import setup, Executable

exe = Executable(
    script='cconvert.pyw',
    base='Win32GUI'
)

options = dict(
    excludes=['curses', 'email', 'tcl', 'ttk', 'tkinter'],
    include_files=['imageformats']
)

setup(
    name="Coord Convertor",
    version="0.1",
    description="A Coordinate converter from DMS to DD",
    requires=['pyqt4 (>=4.8)', 'dtlibs (>=0.4.1)'],
    executables=[exe],
    options={'build_exe': options}
)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top