2. Desplegament

2.1. Mac

Per realitzar el deployment per Mac OS X utilitzarem Py2app, cal configurar el fitxer setup.py indicant la configuració que volem fer servir i despres executar:

python setup.py py2app

Però tal com ve el paquet per defecte l’aplicació generada es tanca per un error només obrirar-la: Problema: llibreries.

S’ha afegit una regla al fitxer Makefile per fer el desplegament per Mac OS X, la regla que fa el desplegament és mac:

make mac

També s’ha definit la regla dmg per crear una imatge de l’aplicació:

make dmg

2.1.1. Configuració

2.1.1.1. Crear l’icona de l’aplicació

Per crear l’icona de l’aplicació s’ha de crear una imatge en format icns. S’han provat dues aplicacions que permeten crear un icns des de un jpg o png:

  • img2icnsapp: es una aplicació gratuita que es pot descarregar des de: http://www.img2icnsapp.com/.
  • Icon Composer: aquesta aplicació s’instal·la conjuntament amb l’XCode, permet crear també la icona per Windows (ico).

2.1.2. Problemes

2.1.2.1. Problema: llibreries

Si executem la aplicació resultat d’executar py2app l’aplicació dona error per que no sap quines llibreries de Qt ha de carregar, aixó ho solucionem afegint un fitxer buit amb nom qt.conf al nostre codi font i indicant a py2app que el copi dins de resources afegint:

"resources": ['qt.conf']

2.1.2.2. Problema: jpg

El deploy que fa py2mac no copia les llibreries per poder visualtizar jpg. Cal afegir un pas més per al deployment! (Aquest problema també es dona a windows, però es resol de manera diferent).

Cal descarregar, configurar i compliar macdeployqt

Un cop el tenim compilat, hem copiat l’executable a la carpeta app/bin del projecte i afegim la següent comanda a la regla del Makefile mac:

bin/macdeployqt dist/main.app

2.2. Windows

El deployment per windows el realitzarem amb py2exe, cal configurar el fitxer setup.py.

2.2.1. Problemes

2.2.1.1. Problema: falten llibreries

Al fer el deployment ens trobem amb un error perque noes troba la llibreria MSCVP90.dll, despres d’investigar com solucionar-ho s’han trobat diverses opcions:

  1. Instal·lar: Microsoft Visual C++ 2008 SP1 Redistributable Package (x86), que no ens ha solucionat el problema. Caldira investigar si es perque la versió instal·lada és el SP1.
  2. Descarregar d’Internet la llibreria, s’ha descartat per desconeixer si les fonts són lliures de virus.
  3. Configurar el setup.py per que ignori aquestes llibreries.

2.2.1.2. Problema: jpg

S’ha de copiar el directori:

C:\Python27\Lib\site-packages\PyQt4\plugins\imageformats

Dins de:

C:\Documents and Settings\Ariel\Escritorio\collector\dist

Aquest procés s’ha d’automatitzar per poder-ho fer automàticament cada cop que fem el desplegament.

Ja que per fer el desplegament tenim un script en batch, fem la copia amb XCOPY:

XCOPY "C:\Python27\Lib\site-packages\PyQt4\plugins\imageformats" "C:\Documents and Settings\Ariel\Escritorio\collector\dist\imageformats" /I /S

Nota

Els flags del parametren ens indiquen que si el destí no existeix és un directori (/I) i que l’origen és un directori (/S)

2.2.1.3. Problema: l’aplicació no es correcte

Al probar l’aplicació en un entorn Windows net, sense les llibreries de desenvolupament, l’aplicació es tancava per un error només obrir-la. Al investigar el primer problema (Problema: falten llibreries) haviem vist que algunes de les solucions indicaven que l’usuari final s’hauria d’isntal·lar Microsoft Visual C++ 2008 Redistributable Package (x86)

Cal instalar Microsoft Visual C++ 2008 SP1 Redistributable Package (x86), o incloure les llibreries en el nostra executable.

S’ha triat que l’usuari instal·li l’aplicació ja que per incloure les llibreries s’hauria de mirar si la llincencia d’aquestes ho permet.

Avís

Caldria investigar si el SP1 es comptatbile o no, ja que no porta la llibreria que ens donava error inicialment. http://www.microsoft.com/en-us/download/details.aspx?id=5582&WT.mc_id=MSCOM_EN_US_DLC_DETAILS_121LSUS007998

2.3. Source Dist

Per distribuir el codi font de la aplicació com un paquet de codí font Python. És fa mitjançant el fitxer setup.py amb l’opció sdist:

python setup.py sdist

Primer cal crear el fitxer MANIFEST.in.