Questa cosa non e' ovviamente accettabile se si ha interesse ad utilizzare (magari all' interno di un addon Zope) l' ultima release stabile di Twisted (la 2.4.0).
Potrebbe risultare anche utile potere installare versioni ancora piu' recenti di Twisted:
infatti, essendo un progetto con uno sviluppo molto intenso, le versioni Twisted scaricate direttamente dall' SVN contengono sempre dei miglioramenti o delle aggiunte (come ad es. AMP).
La soluzione al nostro problema passa attraverso l' installazione Zope3 a partire da una versione modificata dei sorgenti; quindi e' necessario avere a disposizione un compilatore per Windows:
se non si dispone di un ambiente di sviluppo Microsoft bisognera' seguire le istruzioni riportate in un precedente post.
Sistemato il problema del compilatore, andiamo a vedere il funzionamento della procedura di installazione di Zope3 a partire dai sorgenti:
- l' installazione avviene tramite un modulo, install.py, che ridefinisce l' interfaccia al modulo standard distutils (richiamando il package zpkgsetup contenuto nella sotto directory Support);
- le varie componenti (che poi sono delle directory) da installare si trovano nella sotto directory Dependencies e viene utilizzato un standard per il loro nome (<nome componente>-<versione di Zope>) in modo che si possano installare solo i componenti relativi alla corretta versione di Zope;
- non far installare il componente dal nome twisted-Zope-3.3.0 (da non confondere con quello che invece si chiama zope.app.twisted-Zope-3.3.0), che e' quello che causa la sovrascrittura del modulo Twisted;
- eliminare una monkey patch, presente nel componente zope.app.twisted-Zope-3.3.0, non piu' necessaria in quanto relativa alla vecchia versione del modulo twisted.web2 installato con il componente precedente (ma che causa, anzi, un problema durante l'avvio del server).
- si cancella o si rinomina (cambiando la parte finale) il componente twisted-Zope-3.3.0;
- si commenta il metodo locateChild() della classe PreBuffer presente nel modulo zope.app.twisted.http.py contenuto nella sotto directory zope.app.twisted del componente zope.app.twisted-Zope-3.3.0;
A questo punto si puo' eseguire l' installazione di Zope:
- python install.py build (eventualmente con l' opzione --compiler=mingw32);
- python install.py install;
Nella installazione di Twisted si possono, invece, seguire due strade:
- la prima prevede di scaricare una vesione aggiornata dall' SVN ed installare quella;
- la seconda prevede che l' installazione avvenga utilizzando l' installer disponibile per Twisted 2.4.0;
- python setup.py build (eventualmente con l' opzione --compiler=mingw32);
- python setup.py install;
- eseguire l' installer per Twisted 2.4.0;
- scaricare ed installare una versione del modulo twisted.web2 che sia almeno la 0.2.0.
Post a comment