Appunti Plone

Tips, Tricks & mini howto

Plone 3 buildout su SnowLeopard (a 32bit)

with 5 comments

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:

  1. installare MacPorts
  2. installare Python 2.4.6 via MacPorts
  3. installare PIL in Python 2.4.6
  4. patchare asyncore
  5. installare easy_installvirtualenv
  6. 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

Per prima cosa bisogna fare il download del file ez_setup.py che trovate all’indirizzo http://peak.telecommunity.com/dist/ez_setup.py
Sempre in Terminale andate nella cartella dov’è stato scaricato tale file e digitate:
$ sudo python2.4 ez_setup.py
Ora quindi avrete a disposizione anche il comando easy_install.
Tramite easy_install possiamo utilizzare il virtualenv. E quindi:
$ sudo python2.4 -m easy_install virtualenv
Adesso possiamo utilizzare il fiammante virtualenv per creare un ambiente separato che utilizzi il Python 2.4.6 piuttosto che il 2.6 di sistema.
Sempre via Terminale:
$ mkdir -p ~/virtual/2.4
$ cd ~/virtual/2.4
$ virtualenv plone3
Così facendo abbiamo creato una cartella virtual e una sottocartella 2.4 nella user folder della nostra utenza. Quindi con l’ultimo comando abbiamo creato il nostro ambientino separato denominato plone3.
E poi entriamo nell’ambientino e lo attiviamo col comando source:
$ 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! 🙂

Written by vito80ba

14 gennaio 2010 a 15:54

Pubblicato su Plone

5 Risposte

Subscribe to comments with RSS.

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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


Lascia un commento