User Tools

Site Tools


neurali:cython

Cython

In breve, si scrive in Python usando tipi del linugaggio C.

È un gruppo di comandi aggiuntivi a Python

  • Compilazione: Si crea un programma con estensione .pyx, si compila con cython, si ottiene un fle con estensione .c, si compila con gcc.
  • Esecuzione: Si ottiene una libreria dinamica .so molto più veloce del tradizionale Python, che può essere importata nei programmi Python, accelerandone il funzionamento.

In realtà dopo aver creato il file .pyx si può procedere in diversi modi alternativi

  1. Si può avviare manualmente cython e gcc da riga di comando (come già spiegato)
  2. Si può scrivere una sorta di makefile in python (setup.py)

cdef

Quando si vuole usare un tipo C nel linguaggio Python si deve usare la dichiarazione “cdef”

Profilazione (produce file html)

cython -a

Esempio hello world

Dopo aver copiato i seguenti file, si devono esegure due passaggi:

  1. compilazione: prima generare un file .so
    1. python setup.py build_ext --inplace
  2. esecuzione: poi usare il file .so in un programma python
    1. from hello import say_hello_to
  3. oppure
    1. import hello
hello.pyx
def say_hello_to(name):
   print("Hello %s" % name)
setup.py
from distutils.core import setup
from cython.Build import cythomize
setup(
      ext_modules = cythomize("hello.pyx")
     )
neurali/cython.txt · Last modified: 2020/06/08 22:20 by 127.0.0.1