56 votes

Comment puis-je regrouper les fichiers lors de l'utilisation de cx_freeze?

Je suis à l'aide de Python 2.6 et cx_Freeze 4.1.2 sur un système Windows. J'ai créé le setup.py pour construire mon exécutable et tout fonctionne bien.

Lorsque cx_Freeze exécute des films tout le répertoire de construction. J'ai d'autres fichiers que je voudrais inclus dans mon répertoire de construction. Comment puis-je faire cela? Voici ma structure.

src\
    setup.py
    janitor.py
    README.txt
    CHNAGELOG.txt
    helpers\
        uncompress\
            unRAR.exe
            unzip.exe

Voici mon extrait:

le programme d'installation

( name='Janitor',
  version='1.0',
  description='Janitor',
  author='John Doe',
  author_email='john.doe@gmail.com',
  url='http://www.this-page-intentionally-left-blank.org/',
  data_files = 
      [ ('helpers\uncompress', ['helpers\uncompress\unzip.exe']),
        ('helpers\uncompress', ['helpers\uncompress\unRAR.exe']),
        ('', ['README.txt'])
      ],
  executables =
      [
      Executable\
          (
          'janitor.py', #initScript
          )
      ]
)

Je n'arrive pas à obtenir que cela fonctionne. Ai-je besoin d'un MANIFESTE.dans le fichier?

Je vous remercie.

111voto

Mridang Agarwalla Points 7797

Pensé à elle.

from cx_Freeze import setup,Executable

includefiles = ['README.txt', 'CHANGELOG.txt', 'helpers\uncompress\unRAR.exe', , 'helpers\uncompress\unzip.exe']
includes = []
excludes = ['Tkinter']
packages = ['do','khh']

setup(
    name = 'myapp',
    version = '0.1',
    description = 'A general enhancement utility',
    author = 'lenin',
    author_email = 'le...@null.com',
    options = {'build_exe': {'excludes':excludes,'packages':packages,'include_files':includefiles}}, 
    executables = [Executable('janitor.py')]
)

Note:

  • include_files doit contenir "seulement" les chemins d'accès relatifs à la setup.py script d'autre de la compilation échouera
  • include_files peut être une liste de chaîne de je.e un tas de fichiers avec leurs chemins relatifs ou
  • include_files peut être une liste de tuples dans lequel la première moitié du n-uplet est le nom du fichier avec le chemin absolu et la deuxième moitié est la destination nom de fichier avec le chemin d'accès absolu.

(Lorsque le manque de la documentation survient, consultez Kermit la Grenouille)

6voto

Cees Timmerman Points 1739

Il y a un exemple plus complexe à http://wiki.wxpython.org/cx_freeze Le manque de documentation de toutes les options est à http://cx-freeze.sourceforge.net/cx_Freeze.html

Avec Cx_Freeze, je reçois toujours un sortie de la construction de 11 fichiers dans un seul dossier, mais, à la différence avec Py2Exe.

Alternatives: http://www.blog.pythonlibrary.org/category/packaging/

2voto

greene Points 1

Aussi, vous pouvez créer des script qui permet de copier des fichiers après la construction. C'est ce que j'utilise pour reconstruire l'application sur windows (vous devriez avoir "utilitaires GNU pour win32" installé pour faire "cp" œuvres).

construire.chauve-souris:

cd .
del build\*.* /Q
python setup.py build
cp -r icons build/exe.win32-2.7/
cp -r interfaces build/exe.win32-2.7/
cp -r licenses build/exe.win32-2.7/
cp -r locale build/exe.win32-2.7/
pause

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X