Skip to main content

Installazione di PyQt4 a 64bit (usando le Qt basate su cocoa) su Mac OS X 10.6.X.

Posted in

Problematiche:

  • Qt SDK di default installa le librerie a 32bit, ancora...
  • per utilizzare le Qt basate su Cocoa è necessaria l'installazione di Qt a 64bit.
  • python di default su Mac OS X 10.6 è un universal binary e parte a 64bit.
  • sip si autoconfigura con uno script python, e pertanto, lanciandolo senza argomenti si compila a 64bit, ma a questo punto è necessario compilare PyQt4 a 64bit (cosa impossibile, dato che le Qt installate con l'SDK sono a 32bit).
  • è possibile installare e compilare tutto a 32bit (cosa peraltro suggerita nella documentazione di PyQt4), ma io trovo questa soluzione particolarmente poco elegante (senza dimenticare che l'interprete python andrà sempre lanciato a 32bit esplicitamente).

Requisiti:

  • Sono necessari gli strumenti di sviluppo. Tali strumenti possono essere installati in blocco semplicemente installando il pacchetto di XCode.

Soluzione:

  • Ignorare l'SDK.
  • Installare le librerie Qt basate su cocoa:

È possibile scaricare le Qt a 64bit basate su cocoa precompilate da questa url. L'installazione è semplice: si monta il dmg, si clicka due volte sull'installer, si gode vedendo la splendida gui dell'installer del Mac mentre lui pensa a fare tutto il lavoro sporco. Insieme alle librerie vengono installati anche tutti gli strumenti di sviluppo (il Designer, il Linguist e l'Assistant). Volendo potete installare a mano QtCreator (ma tanto non lo potrete usare con PyQt...).

  • Scaricare e compilare sip:

Sip è il generatore di binding utilizzato da PyQt. È possibile scaricare i sorgenti per unix/linux/mac da questa url. Dopo aver decompresso il file, entrare nella directory che si è appena creata e digitare:

    python configure.py

In questo modo verranno creati automaticamente i files necessari alla compilazione di sip. A questo punto non resta che compilare ed installare.

    make
    sudo make install

  • Scaricare e compilare PyQt4:

PyQt4 è il vero e proprio pacchetto di binding Qt4-python. È possibile scaricarne i sorgenti da questa url. La procedura è esattamente uguale a quella necessaria per configurare/compilare/installare sip. È solamente abbastanza più lunga :(

    python configure.py
    make
    sudo make install

Et voilà... Avete PyQt4 a 64bit con Qt a 64bit su Mac OS X Snow Leopard!

Per fare una prova veloce potete aprire l'interprete python e divertirvi un po':

>>> from PyQt4.QtCore import QT_VERSION_STR, PYQT_VERSION_STR
>>> print PYQT_VERSION_STR
4.7.3
>>> print QT_VERSION_STR
4.6.2
>>> exit() # Wooooooooooooooo!