web-dev-qa-db-fra.com

Comment utiliser cx_freeze?

J'ai créé mon fichier setup.py comme indiqué, mais je ne comprends pas vraiment quoi faire. Taper "python setup.py build" dans la ligne de commande génère simplement une erreur de syntaxe.

Alors qu'est-ce que je fais?

setup.py:

from cx_Freeze import setup, Executable

setup(
    name = "On Dijkstra's Algorithm",
    version = "3.1",
    description = "A Dijkstra's Algorithm help tool.",
    exectuables = [Executable(script = "Main.py", base = "Win32GUI")])
38
Edwin
  • Ajouter import sys comme nouvelle ligne du dessus
  • Vous avez mal orthographié "exécutables" sur la dernière ligne.
  • Retirer script = sur la dernière ligne.

Le code devrait maintenant ressembler à ceci:

import sys
from cx_Freeze import setup, Executable

setup(
    name = "On Dijkstra's Algorithm",
    version = "3.1",
    description = "A Dijkstra's Algorithm help tool.",
    executables = [Executable("Main.py", base = "Win32GUI")])

Utilisez la commande Invite (cmd) pour exécuter python setup.py build. (Exécutez cette commande à partir du dossier contenant setup.py.) Notez le paramètre build que nous avons ajouté à la fin de l'appel du script.

33
Bryan

Je ne suis vraiment pas sûr de ce que vous faites pour obtenir cette erreur, il semblerait que vous essayiez de lancer cx_Freeze de manière autonome, sans argument. Voici donc un petit guide pas à pas sur la procédure à suivre dans Windows (votre capture d'écran ressemble à la ligne de commande de Windows, je suppose donc que c'est votre plate-forme).

  1. Ecrivez votre fichier setup.py. Votre script ci-dessus semble correct, il devrait donc fonctionner, à condition que votre script existe.

  2. Ouvrez la ligne de commande (Start -> Run -> "cmd")

  3. Accédez à l'emplacement de votre fichier setup.py et exécutez python setup.py build

Remarques:

  1. Il peut y avoir un problème avec le nom de votre script. "Main.py" contient des majuscules, ce qui peut semer la confusion dans la mesure où les noms de fichiers de Windows ne sont pas sensibles à la casse, mais python est. Mon approche consiste à toujours utiliser des minuscules pour les scripts afin d'éviter toute conflits.

  2. Assurez-vous que python est sur votre PATH (lire http://docs.python.org/using/windows.html ) 1

  3. Assurez-vous que vous consultez bien la nouvelle documentation cx_Freeze . Google semble souvent faire apparaître les anciens documents.

12
aquavitae

Vous pouvez changer le code setup.py en ceci:

    from cx_freeze import setup, Executable
    setup( name = "foo",
           version = "1.1",
           description = "Description of the app here.",
           executables = [Executable("foo.py")]
         )

Je suis sûr que ça va marcher. Je l'ai essayé sur les deux fenêtres 7 ainsi que Ubuntu 12.04

7
Pratik Singhal

J'ai rencontré un problème similaire. Je l'ai résolu en définissant les options de l'exécutable dans une variable et en appelant simplement la variable. Vous trouverez ci-dessous un exemple de fichier setup.py que j'utilise:

from cx_Freeze import setup, Executable
import sys

productName = "ProductName"
if 'bdist_msi' in sys.argv:
    sys.argv += ['--initial-target-dir', 'C:\InstallDir\\' + productName]
    sys.argv += ['--install-script', 'install.py']

exe = Executable(
      script="main.py",
      base="Win32GUI",
      targetName="Product.exe"
     )
setup(
      name="Product.exe",
      version="1.0",
      author="Me",
      description="Copyright 2012",
      executables=[exe],
      scripts=[
               'install.py'
               ]
      ) 
7
Cesar

trouvez le script cxfreeze et exécutez-le. Il se trouvera dans le même chemin que vos autres scripts d'aide python, tels que pip.

cxfreeze Main.py --target-dir dist

en savoir plus sur: http://cx-freeze.readthedocs.org/en/latest/script.html#script

2
gcb