Ciao a tutti e buone "vacanze", sto penando da un po' di tempo per compilare HippoCanvas ([0]) per Windows. Per la cronaca, è sì considerato obsoleto dai suoi autori ma è attualmente utilizzato, ad esempio, dalla versione per Linux di Mugshot (disponibile anche nei repository Ubuntu [1]).
Il sistema di build di questo canvas non è basato su distutils ma sul classico (per Linux) "./configure; make; make install". Osservando la versione di Ubuntu noto che il file necessario a fornire a python il canvas è uno solo: libhippocanvas-1.so.0.0.0, che sta in /usr/lib. Compilando sotto Windows, mi aspetterei quindi di trovare un bel file .dll (o .pyd) da mettere in WINDOWS\system o in WINDOWS\system32. Fin qui dico bene? Ho fatto un tentativo con mingw32 sotto linux, e la compilazione dopo un po' che ci smanettavo ha finalmente (apparentemente) funzionato senza problemi, ma mi sono invece ritrovato un file con estensione ".a" ed uno con estensione ".la", che ho provato a mettere in posti strategici ma mi hanno dato tutt'al più degli errori del tipo "questo file non è un'immagine valida di Windows. Verificare con il dischetto di installazione." (grafico) e "DLL load failed with error code 193" (nella shell). Insomma, mi sembra di capire che la compilazione non ha affatto fatto ciò che mi serve. Ho quindi provato con cygwin, ma (dopo lunghe fatiche dovute tra l'altro all'obsolescenza dei pacchetti) il risultato è simile: ottengo due file "libhippocanvas.a" e "libhippocanvas.la" in /usr/local/lib, e due file hippo.a e hippo.la in /usr/local/lib/python2.5/site-packages, oltre a qualche link simbolico. Inutile dire che ho provato a rinominare tutti questi file con estensione pyd e ad importarli, ma senza successo. La domanda che vi faccio si svolge quindi "su due piani": 1) sapete come caspita posso ottenere i file che mi servono? Mi sfugge clamorosamente qualcosa o semplicemente il makefile è linux-specifico e dovrei andare a modificarlo? 2) potrebbe darsi che in realtà io abbia fatto tutto bene e i messaggi "questo file non è un'immagine valida" ecc... siano dovuti ad incompatibilità di compilatore/versione di python usati? 3) vale la pena che io impazzisca su cose del genere o piuttosto conviene riorganizzare l'estensione "à la distutils" (nonostante io debba partire, anche in questo campo, praticamente da zero)? La terza possibilità mi ispira (per il semplice fatto che sulla compilazione di estensioni con sistema distutils ho trovato tonnellate di documentazione), ma il fatto è che di distutils so molto poco (l'ho utilizzato per moduli in python ma mai per estensioni in C), e vorrei sapere se la migrazione implicherebbe modifiche importanti all'organizzazione del codice. ciao e grazie Pietro [0]: http://wiki.laptop.org/go/HippoCanvas [1]: http://packages.ubuntu.com/gutsy/libhippocanvas-1-0 _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python