2012-01-06 8 views
6

Il mio IDE è pydev/eclipse su Win XP.Come creare moduli cython pydev/eclipse su una piattaforma Windows

Mi piace l'idea di compilare i moduli cython all'interno dell'IDE, ma I può solo farlo funzionare su una macchina Linux.

tasto destro del mouse sul progetto -> Proprietà -> costruttori -> Nuovo -> programma

ho provato con la setup.py semplice e helloworld.pyx come pubblicati qui :

http://docs.cython.org/src/userguide/tutorial.html

questo è il mio schermo su Linux

pydev/eclipse builder settings

Compila il helloworld.pyx nel solito modo, come

python setup.py build_ext --inplace

Tuttavia, su WinXP, con le stesse impostazioni, ancora una volta dopo aver fatto clic

progetto -> progetto di costruzione

ottengo

enter image description here

I.e. "non è una applicazione valida per win32".

Qualche indizio sul motivo per cui questo non funziona su WinXP?

Aggiornamento: Problema risolto da Fabio. Questo funziona:

adjust_location_and_wd

+0

Con la prospettiva PyDev aperta, andare su Finestra/preferenze. Nel pannello di sinistra seleziona Pydev, quindi "Interpreter - Python". Verifica che stia puntando a un'installazione Python valida. – cdarke

+0

Grazie, controllato. Indica la mia installazione standard di Python (... \ Python27 \ python.exe) e "python setup.py build_ext --inplace" funziona da un prompt di cmd di Windows. –

risposta

1

L'errore è perché sta cercando di eseguire setup.py come se fosse un eseguibile ...

Il problema nel vostro specifico caso d'uso è che i costruttori esterni non sanno nulla su python, quindi, la posizione dovrebbe effettivamente mappare al tuo python.exe (e la posizione setup.py dovrebbe essere passata come parametro).

+0

Eccellente! Grazie, ho pubblicato la tua soluzione sopra. Ancora curioso perché questo è diverso per Windows. –

+1

Credo sia diverso perché su linux, se setup.py ha lo shebang (es: #!/Usr/bin/python) all'inizio del file può interpretarlo con una shell (ma non su windows) - nota che dovresti contrassegnare la soluzione come accettata se ha funzionato per te. –