Domanda

So quale sia lo scopo dei cythons. È per scrivere estensioni C compilabili in un linguaggio simile a Python per produrre accelerazioni nel tuo codice. Quello che vorrei sapere (e non riesco a trovare usando il mio Google-Fu) è se Cython può in qualche modo compilare in un formato eseguibile poiché sembra già abbattere il codice Python in C.

Uso già Py2exe, che è solo un packager, ma sono interessato a usarlo per compilare qualcosa che è un po 'più difficile da disimballare (tutto ciò che è pieno usando py2exe può praticamente essere estratto usando 7zip che non voglio)

Sembra se questo è non Possibile la mia prossima alternativa sarebbe solo quella di compilare tutto il mio codice e caricarlo come modulo e quindi impacchettare che utilizzando Py2exe almeno più del mio codice in forma compilata, giusto?

È stato utile?

Soluzione

In preside sembra essere possibile fare qualcosa di simile a quello che vuoi, secondo il Incorporare Pyrex Howto. (Pyrex è effettivamente una generazione precedente di Cython.)

Hmm ... quel nome suggerisce una ricerca migliore di quella che ho provato per la prima volta: "incorporare cython" porta a questa pagina che suona come quello che vuoi.

Altri suggerimenti

Ecco la pagina wiki sull'incorporamento di Cython

Supponendo che tu abbia installato Python a C:\Python31 E vuoi utilizzare il compilatore Microsoft.

smalltest1.py - È il file che si desidera compilare.

test.exe - Nome dell'eseguibile.

È necessario impostare le variabili ambientali per cl.

C:\Python31\python.exe C:\Python31\Scripts\cython.py smalltest1.py --embed

cl.exe  /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ic:\Python31\include -Ic:\Python31\PC /Tcsmalltest1.c /link /OUT:"test.exe" /SUBSYSTEM:CONSOLE /MACHINE:X86 /LIBPATH:c:\Python31\libs /LIBPATH:c:\Python31\PCbuild

Ho usato correttamente Cython & GCC per convertire il file *.py in *.exe, con il file batch sotto:

# build.bat
set PROJECT_NAME=test
set PYTHON_DIR=C:\python27
%PYTHON_DIR%\python -m cython --embed -o %PROJECT_NAME%.c %PROJECT_NAME%.py
gcc -Os -I %PYTHON_DIR%\include -o %PROJECT_NAME%.exe %PROJECT_NAME%.c -lpython27 -lm -L %PYTHON_DIR%\libs

La risposta di Aftershock è positiva, quello che voglio dire riguarda l'app Run senza console. La maggior parte come la scossa di assestamento, la risposta, se si desidera eseguire l'applicazione senza console, sono importanti due punti:

  1. Sostituire tutta la funzione principale () nel file ".c" realizzato da "cython --mbed" con wMain ();

  2. ADD /LINK /SUSSYMEM: Windows /Voce: WMaincrtStartup alla fine del comando "Cl.exe ...".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top