Plone 3 buildout su SnowLeopard (a 32bit)
E alla fine luce fu 🙂
Sono riuscito a creare l’ambiente buildout sul mio MacBook (Intel Core Duo) a 32bit con il nuovo e fiammante SnowLeopard.
Vi anticipo che l’operazione è abbastanza “sporca”, ma quando il gioco si fa duro…
Per partire avete bisogno di avere a bordo l’ultima XCode disponibile.
Gli steps da seguire sono:
- installare MacPorts
- installare Python 2.4.6 via MacPorts
- installare PIL in Python 2.4.6
- patchare asyncore
- installare easy_install e virtualenv
- creare il buildout
Quindi, passiamo al dettaglio:
Installare MacPorts
Recandovi all’indirizzo MacPorts.org potrete scaricare i files di questo progetto che è stato creato per avvicinare Linux a Mac, ovvero riuscire a far funzionare i pacchetti tipici di Linux anche su MacOs. Scaricate il pacchetto principale e installatelo sulla vostra macchina facendo attenzione a scaricare quello pensato per SnowLeopard (MacPorts.org > Installing MacPorts).
Una volta installato il MacPorts nel nostro sistema sarà presente il comando port (in Terminale).
Installare Python 2.4.6 via MacPorts
Quindi aprite il Terminale (shell) e digitate il comando per installare python 2.4.6:
$ sudo port install python24
Dopo questa lunghetta operazione nel nostro sistema in /opt/local sarà presente il nostro Python2.4 e quindi sempre in shell digitando “python2.4” otterrete il vostro comando per richiamare la versione 2.4.6 piuttosto che la 2.6 installata di default su SnowLeopard.
Installare PIL in Python 2.4.6
Scaricate il pacchetto tar presente nel sito web del progetto e scompattatelo dove più vi aggrada. Entrate quindi in questa directory (sempre in shell) e date il seguente comando:
$ sudo python2.4 setup.py build
e se tutto fila liscio
$ sudo python2.4 setup.py install
Patchare Asyncore
Grazie al buon Luca in malinglist di Plone, sono riuscito a patchare il python 2.4.6 che in SnowLeopard si comporta mica tanto bene.
Se lasciato “così com’è” otterremmo il seguente errore all’avvio del buildout:
from cPersistence import Persistent, GHOST, UPTODATE, CHANGED, STICKY ImportError: No module named cPersistence from cPersistence import Persistent, GHOST, UPTODATE, CHANGED, STICKYImportError: No module named cPersistence
Attenzione! Questo metodo è “alla crudele” per installazioni di sviluppo, non certo di produzione. Se volete una soluzione più elegante (anche se sempre di patch trattasi) leggete il ticket aperto su MacPorts: http://trac.macports.org/ticket/21118
Recatevi nella vostra installazione della 2.4.6, che dovebbe sempre trovarsi in /opt/local, e più precisamente nella directory: /opt/local/lib/python2.4 ed editate il file asyncore.py .
Basta commentare le seguenti righe:
#from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, \ # ENOTCONN, ESHUTDOWN, EINTR, EISCONN, errorcode
e aggiungere
from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, \ ENOTCONN, EINTR, EISCONN, errorcode
Installare easy_install e virtualenv
$ sudo python2.4 ez_setup.py
$ sudo python2.4 -m easy_install virtualenv
$ mkdir -p ~/virtual/2.4 $ cd ~/virtual/2.4 $ virtualenv plone3
$ cd plone3 $ source bin/activate (plone3)$ [ la parentesi precedente indentifica il vostro virtualenv attivo]
Adesso provate a digitare il comando which python e dovreste ottenere la stringa “/Users/nomevostroutente/virtual/2.4/plone3/bin/python”. Così facendo possiamo installare lo ZopeSkel localmente all’ambientino.
(plone3)$ easy_install ZopeSkel
Creare il nostro buildout
Ora possiamo dare i classici comandi per creare il nostro ambiente Plone:
(plone3)$ paster create -t plone3_buildout mioplone
e… Buon divertimento! 🙂
Ciao Vito,
grazie mille per la guida, è difficile trovare informazioni adeguate su Plone per Mac.
Seguendo la tua guida passo passo ho provato ad installare ZopeSkel ma ricevo un errore.
Ti posto il messaggio, se per caso ti è capitato e sai come posso andare avanti mi faresti un favore 🙂
Processing download
Running Cheetah-2.2.1/setup.py -q bdist_egg –dist-dir /var/folders/3G/3GxY-NI7HQyEvCKsOQGJoU+++TI/-Tmp-/easy_install-eswYmR/Cheetah-2.2.1/egg-dist-tmp-FhgONN
warning: no files found matching ‘*.cfg’
warning: no files found matching ‘examples’
warning: no files found matching ‘docs’
warning: no files found matching ‘bin’
warning: no files found matching ‘*’ under directory ‘docs’
warning: no files found matching ‘*’ under directory ‘examples’
warning: no previously-included files matching ‘*.pyc’ found under directory ‘src’
warning: no previously-included files matching ‘*~’ found under directory ‘src’
warning: no previously-included files matching ‘*.aux’ found under directory ‘src’
warning: no previously-included files matching ‘*~’ found under directory ‘docs’
warning: no previously-included files matching ‘*.aux’ found under directory ‘docs’
zip_safe flag not set; analyzing archive contents…
Cheetah.Filters: module references __file__
Cheetah.ImportHooks: module references __file__
Cheetah.ImportManager: module references __file__
Cheetah.ImportManager: module references __path__
Cheetah.NameMapper: module MAY be using inspect.stack
Cheetah.Template: module references __file__
Cheetah.Tests.Template: module references __file__
No eggs found in /var/folders/3G/3GxY-NI7HQyEvCKsOQGJoU+++TI/-Tmp-/easy_install-eswYmR/Cheetah-2.2.1/egg-dist-tmp-FhgONN (setup script problem?)
error: Could not find required distribution Cheetah>1.0,<=2.2.1
Ciao 🙂
Andrea
2 marzo 2010 at 10:14
Ciao,
quando hai dato il comando per compilare l’ez_setup.py hai utilizzato il python di sistema?
Hai provato a dare l’easy_install come sudo?
sudo easy_install ZopeSkel
Ma prima di fare tutto cio’ … hai installato l’XCODE? (pacchetto per sviluppatori della Apple)
Per avere maggiori chances di risposta puoi scrivere in lista Plone-IT (http://lists.plone.org/mailman/listinfo/plone-it) 😉
Vito
vito80ba
2 marzo 2010 at 10:30
Ciao,
si Xcode era già installato ed ho provato le opzioni che mi hai consigliato. Grazie per l’aiuto ira scrivo su plone-it.
Grazie ancora ciao.
Andrea
2 marzo 2010 at 10:49
Ciao ragazzi , si anche io ho un lo stesso problema di andrea , qualcuno sa darmi qualche dritta ? Grazie per la guida
Crash
28 Maggio 2010 at 07:39
Ciao,
sicuramente il migliorato buildout creato all’indirizzo http://svn.plone.org/svn/collective/buildout/python/ fa al caso tuo.
Via shell, posizionati in una cartella di tuo piacimento, crea una cartella significativa (tipo python-buildout), entraci e quindi dai il comando:
svn co http://svn.plone.org/svn/collective/buildout/python/
Questo ti scarica gli ultimi file disponibili dal repository.
Quindi:
python bootstrap.py
Farà un bel po’ di cose, al termine avrai in questo buildout di “servizio” dei comandi ad hoc per poter creare buildout senza problemi via virtualenv.
Infatti ti ritroverai con tre sottocartella che identificano i tre python installati: python-2.4 python-2.5 python-2.6
Se vuoi creare un plone3 dovrai utilizzare la python-2.4, altrimenti per la versione 4 il python-2.6.
A questo punto, recati nella cartella che preferisci per creare un virtualenv per plone3 (ad esempio):
cd /Users/tuoutente/
./cartella/python-buildout/bin/virtualenv-2.4 ambientep3
cd ambientep3
source bin/activate
et voilà 🙂 Un virtualenv dove tutto quello che fai viene processato dal python-2.4 invece che dall’antipatico python di sistema di Mac 😉
D’ora in poi, puoi procedere come sempre. Naturalmente dovrai attivare il virtualenv ogniqualvuolta utilizzerai il plone3, altrimenti crea con il virtualenv-2.6 l’ambiente per il plone4.
Vito
vito80ba
28 Maggio 2010 at 08:30