2009-12-01 23 views
6

Ho usato distutils installare il mio pacchetto python, con questo setup.py:Come eseguire lo script python installato?

import distutils.core 

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

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

su Linux/Mac, funziona come previsto:

% plugh 
hello world 
% 

su Windows, lo script "plugh" fa non correre:

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

C:\Python25\Scripts> 

ho trovato il bug report in http://bugs.python.org/issue7231 che la directory \ Scripts non viene aggiunta al percorso quando si installa python, così ho applicato la soluzione d indicato in quel biglietto (es. aggiungi C: \ Python25 \ Scripts al percorso)

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 

E 'questo qualcosa che proprio non funziona su Windows? E se sì, in che modo esattamente dovresti usare gli script Python su una macchina Windows?

Suppongo che ho potuto rilevare di Windows, e aggiungi uno script aggiuntivo alla lista, chiamata "plugh.bat" che contiene qualcosa di simile:

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

ma è che davvero la risposta proprio qui? Avrei pensato che con tutte le personalizzazioni che distutils contiene per Windows, ci sarebbe una risposta migliore di quella.

+2

proposito, la sequenza parametri% 1% 2% 3% 4% 5% 6% 7% 8% 9 potrebbe essere sostituito con% * se è sufficiente per passare tutti gli input batch per pyhton edizione (o qualsiasi altro eseguibile). – dreikanter

risposta

6

Windows utilizza l'estensione del file per determinare come verrà eseguito.

Denominare il file plugh.py e utilizzare plugh.py nel prompt per chiamarlo.

+0

Nel caso in cui si desideri che l'utente faccia clic sul file '.py', è possibile associare i file' .py' con pythonw.exe anziché python.exe in modo che il terminale non rimanga aperto: http: //docs.python .org/utilizzando/windows.html # esecuzione-scripts –

5
  1. Se si utilizza ActivePython, sarà già aggiungere la directory C:\PythonXY\Scripts al %PATH% (ActivePython 2.6 aggiunge inoltre PEP 370 s' %APPDATA%\Python\Scripts-%PATH%) durante l'installazione.

  2. per la distribuzione di script sulla macchina Windows, un migliore utilizzo Distribuire che si occuperà di installare involucri .exe per gli script e che invocano il Pitone reale con la quale è stato installato il pacchetto (per evitare conflitti con installazioni multiple Python - Quindi nominare lo script per terminare .py non è sufficiente). Per ulteriori informazioni su questo argomento, leggi su entry points nella documentazione di distribuzione.

Problemi correlati