TDE 14.0.0 supporto python: Difference between revisions

Aggiunto pagina dedicata al supporto Python per TDE 14.0.0
 
Corretto proseguo in prosieguo
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
Benvenuti nella pagina Wiki di Simone Giustetti.
{{header_it|title=Compilazione del supporto Python per TDE| keyword={{Template:keyword_it_tde}}| description=Compilare pacchetti funzionanti per supportare Python in Trinity Desktop Environment su Slackware Linux | link_page=TDE_14.0.0_python_support}}
 
 
Lingue: [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_python_support English] - '''Italiano'''
 
----


== '''Supporto al Linguaggio Python''' ==
== '''Supporto al Linguaggio Python''' ==
[[trinity_desktop_environment_14.0.0]]
[[trinity_desktop_environment_14.0.0 | Trinity Desktop Environment 14.0.0]]


Il '''Trinity Desktop Environment''' viene distribuito con a corredo molte utili applicazioni. Non essendo possibile soddisfare tutte le necessità dell'utenza viene inoltre distribuito un '''S'''oftware '''D'''evelopment '''K'''it per sviluppare nuovi programmi che si integrino facilmente nell'ambiente desktop. TDE è sviluppato in linguaggio '''C++''', che risulta pertanto essere il linguaggio preferenziale per lo sviluppo di nuovi programmi ed integrazioni a quelli esistenti. Per venire incontro alle necessità di tutti gli sviluppatori sono distribuite librerie di collegamento per una moltitudine di linguaggi di programmazione diversi da C++. Tra questi veste un ruolo di primaria importanza '''Python''' un linguaggio interpretato ricco di funzionalità e librerie di espansione. Per abilitare il supporto al linguaggio Python in TDE è necessario installare alcuni pacchetti prima di compilare '''tdebindings'''. L'elenco dei pacchetti comprende: '''pytdeextensions''', '''python-tqt''', '''python-trinity''' e infine '''tqscintilla'''. Nel proseguo dell'articolo si illustrerà la procedura di compilazione per generare pacchetti funzionanti per '''Slackware Linux 14.1'''.
Il '''Trinity Desktop Environment''' viene distribuito con a corredo molte utili applicazioni. Non essendo possibile soddisfare tutte le necessità dell'utenza viene inoltre distribuito un '''S'''oftware '''D'''evelopment '''K'''it per sviluppare nuovi programmi che si integrino facilmente nell'ambiente desktop. TDE è sviluppato in linguaggio '''C++''', che risulta pertanto essere il linguaggio preferenziale per lo sviluppo di nuovi programmi ed integrazioni a quelli esistenti. Per venire incontro alle necessità di tutti gli sviluppatori sono distribuite librerie di collegamento per una moltitudine di linguaggi di programmazione diversi da C++. Tra questi veste un ruolo di primaria importanza '''Python''' un linguaggio interpretato ricco di funzionalità e librerie di espansione. Per abilitare il supporto al linguaggio Python in TDE è necessario installare alcuni pacchetti prima di compilare '''tdebindings'''. L'elenco dei pacchetti comprende: '''pytdeextensions''', '''python-tqt''', '''python-trinity''' e infine '''tqscintilla'''. Nel prosieguo dell'articolo si illustrerà la procedura di compilazione per generare pacchetti funzionanti per '''Slackware Linux 14.1'''.
      
      
=== Sistema di Compilazione ===
=== Sistema di Compilazione ===
Line 28: Line 23:
|}
|}


Per una discussione generale circa la struttura di uno script SlackBuild si rimanda alla pagina [[TDE_14.0.0_prerequisiti#Struttura_di_uno_Script]] mentre per una trattazione incentrata sulle opzioni generiche di compilazione si rimanda alla pagina [[TDE_14.0.0_prerequisiti#Opzioni_Generali]] in cui analoghe considerazioni venivano esposte per i pacchetti appartenenti alla famiglia '''Prerequisiti'''. Di seguito verranno trattate le opzioni specifiche utilizzate per compilare i singoli pacchetti e verranno forniti collegamenti agli script SlackBuild completi.
Per una discussione generale circa la struttura di uno script SlackBuild si rimanda alla pagina [[TDE_14.0.0_prerequisiti#Struttura_di_uno_Script |Struttura di uno Script]] mentre per una trattazione incentrata sulle opzioni generiche di compilazione si rimanda alla pagina [[TDE_14.0.0_prerequisiti#Opzioni_Generali |Opzioni Generali]] in cui analoghe considerazioni venivano esposte per i pacchetti appartenenti alla famiglia '''Prerequisiti'''. Di seguito verranno trattate le opzioni specifiche utilizzate per compilare i singoli pacchetti e verranno forniti collegamenti agli script SlackBuild completi.


=== Opzioni Specifiche ===
=== Opzioni Specifiche ===


Si rammenta di compilare ed installare i pacchetti nell'ordine riportato nella pagina [[Trinity_desktop_environment_14.0.0#Ordine_di_compilazione]] in caso contrario la procedura di compilazione potrebbe fallire non trovando le necessarie librerie. Nel proseguo dell'articolo i pacchetti verranno trattati in ordine alfabetico.
Si rammenta di compilare ed installare i pacchetti nell'ordine riportato nella pagina [[Trinity_desktop_environment_14.0.0#Ordine_di_compilazione |Ordine di Compilazione]] in caso contrario la procedura di compilazione potrebbe fallire non trovando le necessarie librerie. Nel prosieguo dell'articolo i pacchetti verranno trattati in ordine alfabetico.


==== PYTDEEXTENSIONS ====
==== PYTDEEXTENSIONS ====


La libreria '''Pytdeextensions''' contiene una moltitudine di classi e metodi scritti in Python, che possono essere utilizzati dagli sviluppatori per scrivere le proprie applicazioni integrate in TDE. Per compilare il pacchetto è necessario definire alcune variabili di ambiente:
La libreria '''Pytdeextensions''' contiene una moltitudine di classi e metodi scritti in Python, che possono essere utilizzati dagli sviluppatori per scrivere le proprie applicazioni integrate in TDE. Per compilare il pacchetto è necessario definire alcune variabili di ambiente:
<syntaxhighlight lang="bash">
   PREFIX=${PREFIX:-"/usr"}
   PREFIX=${PREFIX:-"/usr"}
   MANDIR=${MANDIR:-"${PREFIX}/man"}
   MANDIR=${MANDIR:-${PREFIX}/man}
</syntaxhighlight>
Quindi lanciare lo script setup.py con l'opzione '''install''':
Quindi lanciare lo script setup.py con l'opzione '''install''':
<syntaxhighlight lang="bash">
   # Configure, build and install the package
   # Configure, build and install the package
   '''python''' ./setup.py install ''--verbose --root=''${PKG}
   python ./setup.py install --verbose --root=${PKG}
</syntaxhighlight>
Lo script eseguir&agrave; automaticamente tutti i passi necessari a compilare ed installare il pacchetto. Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/pytdeextensions.tar.gz indirizzo].
Lo script eseguir&agrave; automaticamente tutti i passi necessari a compilare ed installare il pacchetto. Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/pytdeextensions.tar.gz indirizzo].


Line 47: Line 46:


La libreria '''Python-tqt''' contiene i collegamenti delle librerie '''TQt''' al linguaggio Python. Senza non sar&agrave; possibile sviluppare applicazioni per TDE. Per funzionare, python-tqt necessita che sia installato '''Sip''': il generatore di collegamenti per Python a librerie scritte in C o C++. Per compilare un pacchetto funzionante bisogna dichiarare alcune variabili di ambiente:
La libreria '''Python-tqt''' contiene i collegamenti delle librerie '''TQt''' al linguaggio Python. Senza non sar&agrave; possibile sviluppare applicazioni per TDE. Per funzionare, python-tqt necessita che sia installato '''Sip''': il generatore di collegamenti per Python a librerie scritte in C o C++. Per compilare un pacchetto funzionante bisogna dichiarare alcune variabili di ambiente:
<syntaxhighlight lang="bash">
   PREFIX=${PREFIX:-"/usr/local"}
   PREFIX=${PREFIX:-"/usr/local"}
   MANDIR=${MANDIR:-"/usr/man"}
   MANDIR=${MANDIR:-"/usr/man"}
</syntaxhighlight>
Aggiungere alcuni percorsi che puntino a file include siti nel percorso di installazione di TDE:
Aggiungere alcuni percorsi che puntino a file include siti nel percorso di installazione di TDE:
<syntaxhighlight lang="bash">
   SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include"
   SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include"
</syntaxhighlight>
Altrimenti la procedura fallir&agrave; rendendo errore. Configurare il codice sorgente invocando lo script '''configure.py''':
Altrimenti la procedura fallir&agrave; rendendo errore. Configurare il codice sorgente invocando lo script '''configure.py''':
<syntaxhighlight lang="bash">
   echo "yes" | \
   echo "yes" | \
   '''python''' configure.py \
   python configure.py \
       CFLAGS="${SLKCFLAGS}" \
       CFLAGS="${SLKCFLAGS}" \
       CXXFLAGS="${SLKCFLAGS}"
       CXXFLAGS="${SLKCFLAGS}"
</syntaxhighlight>
E infine lanciare la compilazione mediante il comando '''make'''.
E infine lanciare la compilazione mediante il comando '''make'''.


Per facilitare gli sviluppatori alcuni esempi di codice verranno aggiunti alla directory contenente la documentazione:
Per facilitare gli sviluppatori alcuni esempi di codice verranno aggiunti alla directory contenente la documentazione:
<syntaxhighlight lang="bash">
   # Add some examples to the documentation directory
   # Add some examples to the documentation directory
   '''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/examples2"
   mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/examples2"
   '''cp''' ''-aR'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/examples2/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/examples2"
   cp -aR ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/examples2/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/examples2"
   '''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/examples3"
   mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/examples3"
   '''cp''' ''-aR'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/examples3/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/examples3"
   cp -aR ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/examples3/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/examples3"
</syntaxhighlight>


Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/python-tqt.tar.gz indirizzo].
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/python-tqt.tar.gz indirizzo].
Line 70: Line 77:


La libreria '''Python-trinity''' contiene ulteriori collegamenti delle librerie '''TQt''' al linguaggio Python. Anche in questo caso per compilare il pacchetto sar&agrave; necessario impostare alcune variabili di ambiente e altre variabili relative  alla configurazione di Python:
La libreria '''Python-trinity''' contiene ulteriori collegamenti delle librerie '''TQt''' al linguaggio Python. Anche in questo caso per compilare il pacchetto sar&agrave; necessario impostare alcune variabili di ambiente e altre variabili relative  alla configurazione di Python:
   '''export''' TDE_PREFIX=${PREFIX}
<syntaxhighlight lang="bash">
   '''export''' TDE_INCLUDEDIR="${TDE_PREFIX}/include"
   export TDE_PREFIX=${PREFIX}
   '''export''' TDE_LIBDIR="${TDE_PREFIX}/lib${LIBDIRSUFFIX}"
   export TDE_INCLUDEDIR="${TDE_PREFIX}/include"
   '''export''' PYTHON_VER=$('''python''' ''-V'' 2>&1 | '''cut''' ''-f'' 2 ''-d''<nowiki>' '</nowiki> | '''cut''' ''-f'' 1-2 ''-d''.)
   export TDE_LIBDIR="${TDE_PREFIX}/lib${LIBDIRSUFFIX}"
   '''export''' PYTHON_LIB=$( '''python''' ''-c'' 'from distutils.sysconfig import get_python_lib; print get_python_lib()' )
   export PYTHON_VER=$( python -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d.)
   '''export''' PYTHON_INCLUDE="/usr/include/python${PYTHON_VER}"
   export PYTHON_LIB=$( python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib()' )
   export PYTHON_INCLUDE="/usr/include/python${PYTHON_VER}"
</syntaxhighlight>
Quindi configurare il codice sorgente mediante lo script '''configure.py''':
Quindi configurare il codice sorgente mediante lo script '''configure.py''':
<syntaxhighlight lang="bash">
   CFLAGS="${SLKCFLAGS}" \
   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS}" \
   '''python''' ./configure.py \
   python ./configure.py \
       ''-d'' "${PYTHON_LIB}" \
       -d "${PYTHON_LIB}" \
       ''-k'' "${TDE_PREFIX}" \
       -k "${TDE_PREFIX}" \
       ''-L'' "${PYTHON_INCLUDE}" \
       -L "${PYTHON_INCLUDE}" \
       ''-n'' "${TDE_LIBDIR}" \
       -n "${TDE_LIBDIR}" \
       ''-o'' "${TDE_INCLUDEDIR}"
       -o "${TDE_INCLUDEDIR}"
</syntaxhighlight>
E infine lanciare la procedura di compilazione mediante il comando '''make'''.
E infine lanciare la procedura di compilazione mediante il comando '''make'''.


Line 92: Line 103:


'''TQScintilla''' &egrave; una conversione di '''Scintilla''' alle librerie '''TQt'''. '''TQScintilla''' fornisce molte funzionalit&agrave; di manipolazione di testo particolarmente indicate per scrivere codice sorgente o eseguirne il debug. Unico dei pacchetti fin qui trattati ad utilizzare '''tqmake''', per compilare un pacchetto per Slackware 14.1 &egrave; necessario impostare alcune variabili d'ambiente:
'''TQScintilla''' &egrave; una conversione di '''Scintilla''' alle librerie '''TQt'''. '''TQScintilla''' fornisce molte funzionalit&agrave; di manipolazione di testo particolarmente indicate per scrivere codice sorgente o eseguirne il debug. Unico dei pacchetti fin qui trattati ad utilizzare '''tqmake''', per compilare un pacchetto per Slackware 14.1 &egrave; necessario impostare alcune variabili d'ambiente:
<syntaxhighlight lang="bash">
   PREFIX=${PREFIX:-"/usr/local"}
   PREFIX=${PREFIX:-"/usr/local"}
   MANDIR=${MANDIR:-"/usr/man"}
   MANDIR=${MANDIR:-"/usr/man"}
</syntaxhighlight>
Aggiungere alcuni percorsi che puntino a file include siti nel percorso di installazione di TDE:
Aggiungere alcuni percorsi che puntino a file include siti nel percorso di installazione di TDE:
<syntaxhighlight lang="bash">
   SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include"
   SLKCFLAGS="${SLKCFLAGS} -I/usr/include/tqt -I${PREFIX_TDE}/include"
</syntaxhighlight>
Per evitare che la procedura di compilazione fallisca rendendo un errore. &Egrave; necessario poi applicare una patch, che corregge un problema con la variabile '''DESTDIR''' sostituendola con '''INSTALL_ROOT''':
Per evitare che la procedura di compilazione fallisca rendendo un errore. &Egrave; necessario poi applicare una patch, che corregge un problema con la variabile '''DESTDIR''' sostituendola con '''INSTALL_ROOT''':
   '''patch''' ''-p0 -i'' ${SRCDIR}/qscintilla.patch
<syntaxhighlight lang="bash">
   patch -p0 -i ${SRCDIR}/qscintilla.patch
</syntaxhighlight>
Una volta configurato il codice sorgente mediante '''tqmake''' e lo script '''qscintilla.pro''':
Una volta configurato il codice sorgente mediante '''tqmake''' e lo script '''qscintilla.pro''':
<syntaxhighlight lang="bash">
   CFLAGS="${SLKCFLAGS}" \
   CFLAGS="${SLKCFLAGS}" \
   CXXFLAGS="${SLKCFLAGS} ''-fno-exceptions''" \
   CXXFLAGS="${SLKCFLAGS} -fno-exceptions" \
   '''tqmake''' qscintilla.pro
   tqmake qscintilla.pro
</syntaxhighlight>
Si potr&agrave; procedere con la compilazione mediante '''make''':
Si potr&agrave; procedere con la compilazione mediante '''make''':
   '''make''' VERBOSE=1 2>&1
<syntaxhighlight lang="bash">
   '''make''' install INSTALL_ROOT=${PKG}
   make VERBOSE=1 2>&1
   make install INSTALL_ROOT=${PKG}
</syntaxhighlight>
Infine, come per il pacchetto python-tqt, si installer&agrave; alcuni file di documentazione dedicati agli sviluppatori e alcuni esempi di codice:
Infine, come per il pacchetto python-tqt, si installer&agrave; alcuni file di documentazione dedicati agli sviluppatori e alcuni esempi di codice:
<syntaxhighlight lang="bash">
   # Add HTML and SGML files to the documentation directory
   # Add HTML and SGML files to the documentation directory
   '''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/html"
   mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/html"
   '''cp''' ''-a'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/doc/html/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/html"
   cp -a ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/doc/html/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/html"
   '''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/Scintilla"
   mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/Scintilla"
   '''cp''' ''-a'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/doc/Scintilla/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/Scintilla"
   cp -a ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/doc/Scintilla/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/Scintilla"
   # Add some examples to the documentation directory
   # Add some examples to the documentation directory
   '''mkdir''' ''-p'' ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/example"
   mkdir -p ${PKG}/usr/doc/${PRGNAM}"-"$VERSION"/example"
   '''cp''' ''-aR'' ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/example/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/example"
   cp -aR ${TMP}/tmp-${PRGNAM}/${DIR_SRC}/example/* ${PKG}/usr/doc/${PRGNAM}"-"${VERSION}"/example"
</syntaxhighlight>


Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/tqscintilla.tar.gz indirizzo].
Un archivio contenente lo script SlackBuild completo ed i file di configurazione pu&ograve; essere scaricato dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1400/tqscintilla.tar.gz indirizzo].
Line 126: Line 149:
Per commenti, consigli, domande inviate una e-mail all'indirizzo ''studiosg [chiocciola] giustetti [punto] net''.
Per commenti, consigli, domande inviate una e-mail all'indirizzo ''studiosg [chiocciola] giustetti [punto] net''.


python
 
Link esterni
Link esterni
----
----


* [http://www.trinitydesktop.org/ Home page del progetto TDE (En)]
* [http://www.trinitydesktop.org/ Home page del progetto TDE (En)]
* [http://www.slackware.com/ Home page di Slackware (En)]
* [http://www.slackware.com/ Home page di Slackware (En)]
* [http://www.python.it Python - Sito Ufficiale]
* [http://www.python.it Pagina dedicata al linguaggio Python]


----
----


Lingue: [http://www.giustetti.net/wiki/index.php?title=TDE_14.0.0_python_support English] - '''Italiano'''
{{footer_it | link_page=TDE_14.0.0_python_support}}