Domanda

E 'possibile importare i moduli arbitrarie in Cython, compilarli in file oggetto condiviso e poi usarle in Python 3.1?

La ragione di questo è, che sto scrivendo un'estensione per il programma "frullatore", che ha un interno python 3.1 interprete. Ma vorrei anche fare uso di alcuni python-moduli che non sono portato su 3.x, ma

Ho specificamente NumPy nella mia mente (ma anche alcune altre biblioteche). Ho un modulo, che si avvale di NumPy. Come Voglio ridistribuire quel modulo, non voglio poeple di installare NumPy sulle loro macchine. vorrei che il lavoro?

È stato utile?

Soluzione

In linea di principio, credo che sia possibile. Cython funziona traducendo codice Python-like a codice C. Tale codice può essere compilato sia per Python 2 o Python 3 (utilizza C preprocessore dichiarazioni cambiamento che viene utilizzato il codice).

La cattiva notizia è che funziona solo per le estensioni scritte in codice che Cython può tradurre Python-like. Non è possibile utilizzare Cython sulle estensioni scritte in C, come Numpy.

La notizia buona è che, almeno per Numpy, non dovreste avere a. Dal momento che versione 1.5 , Numpy supporta Python 3. C'è una disposizione binaria per Windows; su altri sistemi, potrebbe essere necessario capire come compilare il codice.

Altri suggerimenti

Controlla la documentazione di Python, la sezione "Python / C API Reference Manual" descrive in dettaglio come farlo.

Modificato: Quindi, ciò che si vuole è il porting di un lib 2.xa 3.x. Questo è un grande lavoro da fare. Se la soluzione vostra voluto esiste. Python 2.x avrebbe dovuto essere eliminati da ora. Certo v'è uno strumento 2to3. Ma un lib Python scritto da C non è applicabile in questo modo.

Quindi, è possibile seguire le istruzioni nella sezione "Python / C API Reference Manual" alla porta del lib 3.x o semplicemente attendere.

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