[[neurali:integrare ros e annarchy]] ======setup.py====== https://docs.python.org/3/distutils/setupscript.html **setup.py** fa parte di distutils.core Questo script ha un contenuto standardizzato, contiene diversi metadati utili durante il setup, ad esempio per risolvere le dipendenze. ====Definizioni==== * Un **package** è composto da più moduli * ogni package è una directory con un file %%__init__.py%% * Un **modulo** python non si avvia da terminale, ma si importa * Uno **script** python si avvia da terminale * un modulo estensione (Extension) in python è più complicato da installare, rispetto ad un modulo. Oltre al nome devi fornire anche: sorgenti, include, lib. ====Metadati==== - packages = ['pac1','pac2'] - eventuale) package_dir = ... - package_data = elenco di file di dati non eseguibili da installare - ext_modules = [Extension('pack.foo',['src/foo.c',...],library_dirs=[...],libraries=[...])] - requires = ['modulo1'>1.0,'modulo2'==2.0] - provides = ['pac3(1.1)'] * eventuali percorsi sono sempre con lo slash - non ho capito perchè su ANNarchy si trova: packages=find_packages() =====SWIG (to do)===== swig interface .i swig extension --swig-opts