Diferència entre revisions de la pàgina «Python»
Salta a la navegació
Salta a la cerca
Línia 68: | Línia 68: | ||
** Oju: s'ha d'instal·lar al sistema (o al virtualenv) i cal afegir prèviament els paquets: python2.?-dev i libcurl4-gnutls-dev | ** Oju: s'ha d'instal·lar al sistema (o al virtualenv) i cal afegir prèviament els paquets: python2.?-dev i libcurl4-gnutls-dev | ||
** Després ja es pot instal·lar amb <pre>$ easy_install pycurl</pre> | ** Després ja es pot instal·lar amb <pre>$ easy_install pycurl</pre> | ||
+ | * Millor que pycurl és urllib que ja està al sistema i per fer el fet anirem més ràpids | ||
+ | *... | ||
<br> | <br> | ||
+ | |||
+ | == Criptografia == | ||
+ | * PyCrypto: http://pypi.python.org/pypi/pycrypto/ | ||
+ | ** Doc original: http://packages.python.org/pycrypto/ | ||
+ | ** Exemple molt clarificador: http://www.laurentluce.com/posts/python-and-cryptography-with-pycrypto/ | ||
+ | ** Per gravar la key en fitxer: http://stackoverflow.com/questions/9197507/saving-rsakeys-to-a-file-using-pycrypto | ||
+ | * ... | ||
== Virtualenv == | == Virtualenv == |
Revisió del 21:26, 3 set 2012
Python és un llenguatge interpretat i completament orientat a objectes. Les seves principals aplicacions son:
- Aplicacions web
- Aplicacions d'escriptori (com GNOME, etc.)
Google ha impulsat molt la seva utilització. És més segur que altres llenguatges com PHP.
Contingut
Primeres passes amb Python
...
Instal·lació en Apache2 amb mòdul WSGI
Per poder utiltizar Python en Apache2 es pot fer de 2 maneres:
- Com a script CGI i amb el mòdul libapache2-mod-python (desaconsellat)
- Com a script WSGI, que és el standard per Python. Els detalls a continuació son per aquesta versió.
Per tant:
- Instal·la el mòdul WSGI
- Segons el fòrum anterior s'instal·la de manera que els scripts s'executen si tenen l'extensió .wsgi
- Pots afegir l'extensió .py alhora que la .wsgi per executar scripts Python en Apache.
- Segueix el tutorial per posar en marxa la primera aplicació Python-WSGI
- http://webpython.codepoint.net/wsgi_tutorial
- En aquest tutorial es posa en marxa el servidor des de la línia de comandes. El entorn wsgi ens permet executar l'aplicació mitjançant un servidor httpd propi (sense Apache) i accedint a un port particular. Si vols executar-ho en l'entorn Apache has de treure la crida a httpd.handle_request o httpd.serve_forever i posar-ho en un directori visible per l'Apache (/var/www o com ho tinguis configurat).
Més Python
- Per activar el debug per la pantalla del navegador enlloc de /var/log/apache2/error.log:
- Cal tenir en compte que en mode de producció no es pot tenir el debug activat. Tocant la conf de l'Apache es pot arreglar:
- Pyramid
- Virtualenv
- First Pyramid app: http://docs.pylonsproject.org/projects/pyramid/en/1.2-branch/narr/firstapp.html#firstapp-chapter
- Primer projecte Pyramid: http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/project.html?awesome
- Estructura d'arxius Pyramid. Els scaffolds per Pyramid no van com indiquen els tutorials (v.2.7 de python). Pots descarregar Fitxer:Myapp.tgz aquesta plantilla per Pyramid i canviant totes les cadenes "myapp" que trobis (particularment en development.ini). Els següents links no van del tot bé però la doc serveix:
Scaffolds (1r projecte): http://docs.pylonsproject.org/projects/pyramid/en/1.2-branch/narr/project.html#project-narrPaster (Pylons) i .ini file: http://docs.pylonsproject.org/projects/pyramid/en/1.2-branch/narr/paste.html
- WSGI integració de Pyramid (Pylons) amb Apache: http://code.google.com/p/modwsgi/wiki/InstallationInstructions
- Més Pyramid:
- Per començar a utilitzar MySQL amb Python:
- Cookies:
- Persistència d'objectes:
- Amb pickle: http://docs.python.org/library/pickle.html
- En BD: ...
- GUI: hi ha diverses opcions:
- wxPython: http://wxpython.org/ Té editors visuals com wxDesigner o wxGlade
- PyQt: http://zetcode.com/tutorials/pyqt4/firstprograms/ Té editor visual QtDesigner.
- ...
- Àudio:
- Snack sound (necessita també Tcl/Tk): http://www.speech.kth.se/snack/
- Pygame: http://www.pygame.org/
- ...
Web services: Cornice
Package: Cornice
- Treballarem amb JSON: wikipedia i json.org. Java utilitza XMLRPC, i Microsfot SOAP.
- Doc.oficial: http://packages.python.org/cornice/
- Interessant i essencial el "Quick Start for people in a hurry" (emmagatzema objectes JSON), però hi ha un error: on diu _VALUES.set(...) en realitat ha de ser:
_VALUES[key] = json.loads(request.body)
- També necessitarem CURL (amb apt-get). Consulta el man o també online: http://curl.haxx.se/docs/manpage.htm
- OJU amb JSON i curl, les cometes han de ser simples per tot el objecte JSON i dobles pels elements:
$ curl http://el/meu/servei -d '{"nom1":"valor1",...}'
- Més opcions curl: -X {GET|POST|PUT}
- OJU amb JSON i curl, les cometes han de ser simples per tot el objecte JSON i dobles pels elements:
- Llibreria PycURL: http://pycurl.sourceforge.net/ ens permet fer crides des de python amb cURL.
- Oju: s'ha d'instal·lar al sistema (o al virtualenv) i cal afegir prèviament els paquets: python2.?-dev i libcurl4-gnutls-dev
- Després ja es pot instal·lar amb
$ easy_install pycurl
- Millor que pycurl és urllib que ja està al sistema i per fer el fet anirem més ràpids
- ...
Criptografia
- PyCrypto: http://pypi.python.org/pypi/pycrypto/
- Doc original: http://packages.python.org/pycrypto/
- Exemple molt clarificador: http://www.laurentluce.com/posts/python-and-cryptography-with-pycrypto/
- Per gravar la key en fitxer: http://stackoverflow.com/questions/9197507/saving-rsakeys-to-a-file-using-pycrypto
- ...
Virtualenv
Resulta convenient disposar d'un entorn on poguem tenir les versions de Python que ens interessi i que no siguin les del sistema. Virtualenv ens pot ajudar.
...TODO...
Paste script per desenvolupament i desplegament
...TODO...
Per començar un buildout
El buildout ens permet descarregar els paquets en versions concretes per no dependre del sistema on tenim l'aplicació instal·lada.
Link principal: [1]
- Instal·lar virtualenv i fer source del activate
- Instal·lar setuptools (a.k.a. easy_install, que descarrega programari de Pypi):
- Amb un package de sistema:
sudo apt-get install python-setuptools
- Descarregant i executant el script
ez_setup.py
de http://peak.telecommunity.com/
- Amb un package de sistema:
- Actualitzar la darrera versió del "distribute":
- http://pypi.python.org/pypi/distribute/#downloads
- $ wget http://python-distribute.org/distribute_setup.py
- $ python distribute_setup.py
- També es podria fer instal·lant un package del sistema, però podem tenir problemes de dependències després.
- http://pypi.python.org/pypi/distribute/#downloads
- Creem el projecte
$ buildout init
- Iniciem el bootstrap:
$ python bootstrap.py
- Activem la descàrrega i instal·lació:
$ bin/buildout -v
- ...