2009-12-01 26 views
6

que utilizan distutils instalar mi paquete python, con este setup.py:¿Cómo ejecutar el script de python instalado?

import distutils.core 

args = { 
    'name' :   'plugh', 
    'version' :   '1.0', 
    'scripts' :   [ "scripts/plugh" ], 
    'packages':   [ "plugh" ], 
} 

d = distutils.core.setup(
    **args 
) 

en Linux/Mac, funciona como se esperaba:

% plugh 
hello world 
% 

En las ventanas, el guión "plugh" hace no ejecute:

C:\Python25\Scripts>plugh 
'plugh' is not recognized as an internal or external command, 
operable program or batch file. 

C:\Python25\Scripts> 

me encontré con el informe de error en http://bugs.python.org/issue7231 que el directorio \ Scripts no se añade al PATH al instalar Python, por lo que solicité la solución d descrito en ese boleto (es decir añadir C: \ Scripts \ Python25 a PATH)

C:\Python25\Scripts>path 
PATH=c:\Python25\Scripts;C:\Program Files\Legato\nsr\bin;C:\WINDOWS\system32;C:\ 
WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;c:\python2 
5;c:\local;C:\WINDOWS\system32\WindowsPowerShell\v1.0 

Es esto algo que simplemente no funciona en Windows? Y si es así, ¿cómo se supone que debes usar las secuencias de comandos de Python en una máquina con Windows?

supongo que pude detectar de Windows, y añadir una secuencia de comandos adicionales a la lista, llamado "plugh.bat" que contiene algo como:

@echo off 
c:\python25\python.exec c:\python25\scripts\plugh %1 %2 %3 %4 %5 %6 %7 %8 %9 

pero es que realmente la respuesta aquí? Pensé que con todas las personalizaciones que distutils contiene para Windows, habría una mejor respuesta que eso.

+2

BTW, los parámetros de secuencia% 1% 2% 3% 4% 5% 6% 7% 8% 9 podrían ser sustituidos con% * si sólo necesita pasar toda la entrada por lotes para pyhton secuencia de comandos (o cualquier otro ejecutable). – dreikanter

Respuesta

6

Windows utiliza la extensión del archivo para determinar cómo se va a ejecutar.

nombre de su archivo y utilizar plugh.pyplugh.py en el indicador de llamarlo.

+0

En caso de que quiera que el usuario haga clic en el archivo '.py', puede asociar archivos' .py' con pythonw.exe en lugar de python.exe modo que el terminal no se queda abierta: http: //docs.python .org/using/windows.html # execute-scripts –

5
  1. Si utiliza ActivePython, ya se añadirá el directorio C:\PythonXY\Scripts a su %PATH% (ActivePython 2.6 añade, además, PEP 370 's %APPDATA%\Python\Scripts a %PATH%) durante la instalación.

  2. para el despliegue de secuencias de comandos en la máquina de Windows, use mejor Distribuir que se encargará de la instalación de envolturas .exe para las secuencias de comandos y invocando el pitón real con el que se ha instalado el paquete (para evitar conflictos con varias instalaciones de Python - Así que nombrar tu script para finalizar .py no es suficiente). Para obtener más información sobre este tema, lea acerca de entry points en Distribuir documentación.

Cuestiones relacionadas