2012-03-27 13 views
28

He creado mi archivo setup.py como se indica pero en realidad no entiendo qué hacer a continuación. Al escribir "python setup.py build" en la línea de comando solo se obtiene un error de sintaxis.¿Cómo uso cx_freeze?

Entonces, ¿qué debo hacer?

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")]) 
+0

nos muestras del 'setup.py', la versión de Python? – birryree

+0

Según las instrucciones de quién? –

+0

@birryree: Ver la pregunta editada. –

Respuesta

11

Realmente no estoy seguro de lo que está haciendo para conseguir que el error, que parece que está tratando de ejecutar cx_Freeze por su propia cuenta, sin argumentos. Así que aquí es una breve guía paso a paso sobre cómo hacerlo en las ventanas (Su pantalla parece más bien la línea de comandos de Windows, así que estoy asumiendo que es su plataforma)

  1. Escribe tu setup.py archivo. Su secuencia de comandos de arriba parece correcta, por lo que debería funcionar, suponiendo que exista su secuencia de comandos.

  2. Abra la línea de comandos (Start ->Run ->"cmd")

  3. Vaya a la ubicación del archivo setup.py y ejecutar python setup.py build

Notas:

  1. Puede haber un problema con el nombre de su script. "Main.py" contiene letras mayúsculas, lo que puede causar confusión ya que los nombres de los archivos de Windows no distinguen entre mayúsculas y minúsculas, pero Python sí. Mi enfoque es usar siempre minúsculas para los scripts para evitar cualquier conflicto.

  2. Asegúrese de que Python está en su PATH (leer http://docs.python.org/using/windows.html) 1

  3. asegurarse de que se está buscando en la nueva cx_Freeze documentation. Google a menudo parece mostrar los documentos antiguos.

+0

"'python' no se reconoce como un comando interno o externo, programa operable o archivo por lotes." –

+1

Ver nota 2 en mi respuesta. – aquavitae

+0

"python: no se puede abrir el archivo 'setup.py': [Errno 2] No existe dicho archivo o directorio" Al escribir python obtiene el prompt de comando de Python como se esperaba, así que no entiendo ese error. Mi archivo está en la carpeta Python31. –

7

Me encontré con un problema similar. Lo resolví estableciendo las opciones de Ejecutable en una variable y luego simplemente llamando a la variable. A continuación se muestra un ejemplo setup.py que utilizo:

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' 
       ] 
    ) 
29
  • Añadir import sys como la nueva línea superior
  • están mal escritas "ejecutables" en la última línea.
  • Eliminar script = en la última línea.

El código debe parecerse a:

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")]) 

uso del símbolo del sistema (cmd) para ejecutar python setup.py build. (Ejecute este comando desde la carpeta que contiene setup.py). Observe el parámetro build que agregamos al final de la llamada al script.

+1

¿Cuál es el propósito de la base, y qué pasa si quiero que mi ejecutable se ejecute en múltiples plataformas? – Max

7

Puede cambiar la configuración.código de py a esto:

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

Estoy seguro de que funcionará. Lo he intentado tanto en Windows 7 como en Ubuntu 12.04