1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
---
title: Python
slug: Python
translation_of: Learn/Server-side/Django
translation_of_original: Python
---
<p><a class="external" href="http://www.python.org">Python</a> è un linguaggio di programmazione interpretato disponibile su una vasta varietà di piattaforme, inclusi Linux, MacOS X e Microsoft Windows.</p>
<h2 id="Learning_Python" name="Learning_Python">Imparare Python</h2>
<h3 id="Libri_digitali_(gratuiti)">Libri digitali (gratuiti)</h3>
<p><a class="external" href="http://www.diveintopython.net/toc/index.html">Dive Into Python</a> è considerata una delle migliori introduzioni a Python disponibili, anche se è aggiornato al 2004. Ciò nonostante, fornisce una buona trattazione delle basi del linguaggio e dei compiti più comuni per cui è usato il linguaggio come le richieste web o le operazioni sui file. Per gli argomenti più complessi, <a class="external" href="http://gnosis.cx/TPiP/">Text Processing In Python</a> è un eccellente tutorial (o reference).</p>
<p>Ci sono poi altri tutorial e risorse gratuite, disponibili:</p>
<ul style="margin-left: 40px;">
<li>Il <a class="external" href="http://docs.python.org/tutorial/index.html" title="http://docs.python.org/tutorial/index.html">Tutorial Ufficiale</a> e la <a href="http://docs.python.org" title="http://docs.python.org">documentazione ufficiale</a></li>
<li><a href="http://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_2.6" title="http://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_2.6">Non-Programmer's Tutorial for Python 2.6</a> di <a href="http://en.wikibooks.org/wiki/Main_Page" title="http://en.wikibooks.org/wiki/Main_Page">Wikibooks</a></li>
<li><a href="http://www.greenteapress.com/thinkpython/" title="http://www.greenteapress.com/thinkpython/">Think Python</a>: How to Think Like a Computer Scientist di <strong>Allen B. Downey </strong>(disponibile in formato <a href="http://www.greenteapress.com/thinkpython/thinkpython.pdf" title="http://www.greenteapress.com/thinkpython/thinkpython.pdf">PDF</a> & <a href="http://www.greenteapress.com/thinkpython/html/index.html" title="http://www.greenteapress.com/thinkpython/html/index.html">HTML</a>).
<ul>
<li><a href="http://greenteapress.com/complexity/index.html" title="http://greenteapress.com/complexity/index.html">Think Complexity</a> di <strong>Allen B. Downey</strong> continua l'opera del precedente (disponibile in formato <a href="http://greenteapress.com/complexity/thinkcomplexity.pdf" title="http://greenteapress.com/complexity/thinkcomplexity.pdf">PDF</a> & <a href="http://greenteapress.com/complexity/html/index.html" title="http://greenteapress.com/complexity/html/index.html">HTML</a> )</li>
</ul>
</li>
<li><a href="http://learnpythonthehardway.org" title="http://learnpythonthehardway.org">Learn Python The Hard Way</a> di <span id="cke_bm_75S" style="display: none;"> </span>Zed Shaw<span id="cke_bm_75E" style="display: none;"> </span> (<a href="http://learnpythonthehardway.org/book/" title="http://learnpythonthehardway.org/book/">formato HTML</a>)</li>
<li><a href="http://www.itmaybeahack.com/book/python-2.6/html/index.html" title="http://www.itmaybeahack.com/book/python-2.6/html/index.html">Building Skills in Python</a> di<span id="cke_bm_76S" style="display: none;"> </span> Steven F. L<span id="cke_bm_76E" style="display: none;"> </span>ott (<span id="cke_bm_77E" style="display: none;"> </span><a href="http://www.itmaybeahack.com/book/python-2.6/latex/BuildingSkillsinPython.pdf" title="http://www.itmaybeahack.com/book/python-2.6/latex/BuildingSkillsinPython.pdf">formato PDF</a>)</li>
</ul>
<p>Una volta acquisite le basi, si può passare a <a href="http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html" title="http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html">Code Like a Pythonista: Idiomatic Python</a> per approfondire alcuni aspetti di Python che lo rendono diverso dagli altri linguaggi .</p>
<h3 id="Corsi_Online_(gratuiti)">Corsi Online (gratuiti)</h3>
<ul style="margin-left: 40px;">
<li><a href="https://developers.google.com/edu/python/" title="http://code.google.com/edu/languages/google-python-class/">Google's Python Class</a></li>
<li>Learnstreet's Free <a href="http://www.learnstreet.com/lessons/languages/python" title="http://www.learnstreet.com/lessons/languages/python">Python Courses and Videos</a></li>
<li><a href="http://www.codecademy.com/tracks/python" title="http://www.codecademy.com/tracks/python">Python</a> di <strong>Codecademy</strong></li>
<li><a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2008/" title="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2008/">A Gentle Introduction to Programming Using Python</a> ad opera del <strong>MIT</strong></li>
<li><a href="http://www.fireboxtraining.com" title="http://www.fireboxtraining.com">Firebox Training's</a> <a href="http://www.fireboxtraining.com/blog/python-tutorials/" title="http://www.fireboxtraining.com/blog/python-tutorials/">Free Python course video tutorial blog</a></li>
</ul>
<h2 id="Python_in_Mozilla" name="Python_in_Mozilla">Python nelle applicazioni Mozilla</h2>
<p><a href="/en-US/docs/XPCOM" title="XPCOM">XPCOM</a> di per sè supporta solamente la comunicazione tra C++ e JavaScript. Il <a href="/en-US/docs/PyXPCOM" title="PyXPCOM">modulo Python XPCOM</a> (chiamato anche <strong>PyXPCOM</strong>) è uno strato di basso-livello che mette insieme Python e Mozilla, permettendo ai componenti XPCOM scritti in C++ o JavaScript di comunicare con Python, o viceversa. PyXPCOM non è incluso <em>di default </em>in Firefox, quindi si dovrebbe usare una versione di terze-parti che include il modulo. Un esempio di utilizzatori di PyXPCOM sono la famiglia di prodotti <strong>Komodo</strong>.</p>
<p>A partire da Mozilla 1.9, è stato implementato Python DOM (<a href="/en-US/docs/PyDOM" title="PyDOM">PyDOM</a>). Ciò permette agli sviluppatori di usare Python col tag <script> (ovviamente non nella release <em>default </em>di Firefox o Thunderbird).</p>
<h2 id="Strumenti_scritti_in_Python">Strumenti scritti in Python</h2>
<p>Python usato in Mozilla per gli strumenti che si occupano di svolgere diverse operazioni sulle applicazioni e le infrastrutture. Sarebbe utile leggere <a href="/en-US/docs/Python_Environment_and_Tools_for_Mozilla" title="Python_Environment_and_Tools_for_Mozilla">Python Environment and Tools for Mozilla</a>.</p>
<p>Gli strumenti scritti in Python sono listati qui: <a class="external" href="http://k0s.org/toolbox/?language=python">http://k0s.org/toolbox/?language=python</a></p>
<h2 id="L'uso_di_Python_in_Mozilla">L'uso di Python in Mozilla</h2>
<p>Mozilla ha diverse infrastrutture basate su Python:</p>
<ul>
<li><strong>Django</strong> per lo<a href="http://blog.mozilla.org/webdev/"> sviluppo web</a></li>
<li><a class="link-https" href="https://wiki.mozilla.org/Buildbot" title="https://wiki.mozilla.org/Buildbot">buildbot</a></li>
<li>Molti strumenti per i <a href="/en-US/docs/Mozilla_automated_testing" title="Mozilla automated testing">test</a></li>
<li><a class="link-https" href="https://wiki.mozilla.org/Auto-tools/Projects/Mozbase" title="https://wiki.mozilla.org/Auto-tools/Projects/MozBase">mozbase</a></li>
</ul>
<h2 id="Python_in_Mozilla-Central">Python in Mozilla-Central</h2>
<p><span style="background-color: #ffff00;">[Nota: guarda <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=835553">https://bugzilla.mozilla.org/show_bug.cgi?id=835553</a>]</span></p>
<p>Molti dei sistemi di sviluppo, di testing, altri strumenti ed infrastrutture in mozilla-central sono scritte in Python.</p>
<ul>
<li><a href="http://mxr.mozilla.org/mozilla-central/source/python/" title="http://mxr.mozilla.org/mozilla-central/source/python/"><code>python/</code></a> contiene, tra le altre cose, moduli Python hostati per pypi.python.org</li>
<li><a href="http://mxr.mozilla.org/mozilla-central/source/testing/mozbase/" title="http://mxr.mozilla.org/mozilla-central/source/testing/mozbase/"><code>testing/mozbase/</code></a> contiene un mirror dei pacchetti <a href="https://wiki.mozilla.org/Auto-tools/Projects/Mozbase" title="https://wiki.mozilla.org/Auto-tools/Projects/Mozbase"><code>Mozbase</code></a> come quelli usati in mozilla-central</li>
</ul>
<p><strong>Nota: </strong>un <a href="/en-US/docs/Python/Virtualenv" title="/en-US/docs/Python/Virtualenv">virtualenv</a> è stato attivato nella <a href="https://developer.mozilla.org/en-US/docs/Developer_Guide/Mozilla_build_FAQ#Build_configurations" title="https://developer.mozilla.org/en-US/docs/Developer_Guide/Mozilla_build_FAQ#Build_configurations"><code>objdir</code></a> (<code>$OBJDIR/_virtualenv)</code> . Per aggiungere moduli a <em>virtualenv</em>, edita <a href="http://mxr.mozilla.org/mozilla-central/source/build/virtualenv_packages.txt" title="http://mxr.mozilla.org/mozilla-central/source/build/virtualenv/packages.txt">build/virtualenv_packages.txt </a>. Questi sono installati via <a href="http://mxr.mozilla.org/mozilla-central/source/build/virtualenv/populate_virtualenv.py" title="http://mxr.mozilla.org/mozilla-central/source/build/virtualenv/populate_virtualenv.py">build/virtualenv/populate_virtualenv.py</a> .</p>
<h2 id="Pacchetti_Python">Pacchetti Python</h2>
<p>Python usa il file <a class="external" href="http://docs.python.org/distutils/index.html" title="http://docs.python.org/distutils/index.html">setup.py</a> per l'installazione di <a class="external" href="http://docs.python.org/tutorial/modules.html#packages" title="http://docs.python.org/tutorial/modules.html#packages">moduli Python</a>. Digitando <code>python setup.py install</code> installerai il modulo, ciò ti permetterà di usare il modulo stesso perchè aggiunto nel <a class="external" href="http://docs.python.org/tutorial/modules.html#the-module-search-path" title="http://docs.python.org/tutorial/modules.html#the-module-search-path">percorso PATH di Python</a>. Per Python 2.x esistono molti moduli disponibili. <code><a class="external" href="http://docs.python.org/distutils/index.html" title="http://docs.python.org/distutils/index.html">distutils</a></code> è l'unico <span style="color: #fff0f5;"><span style="background-color: rgb(178, 34, 34);">gestore di moduli</span> </span>presente nella <a class="external" href="http://docs.python.org/library/" title="http://docs.python.org/library/">libreria standard</a>. <code>distutils</code> puo caricare moduli su <a class="external" href="http://pypi.python.org/pypi" title="http://pypi.python.org/pypi">PyPI</a> ed installarli. Per maggiori dettagli, puoi consultare <a class="external" href="http://docs.python.org/distutils/index.html" title="http://docs.python.org/distutils/index.html"><code>la documentazione ufficiale di Python</code></a>.</p>
<p>A differenza di <code>distutils</code> che fa parte della libreria standard, <a class="external" href="http://peak.telecommunity.com/DevCenter/setuptools" title="http://peak.telecommunity.com/DevCenter/setuptools">setuptools</a> è un modulo di terze parti. <code>È certamente compatibile con distutils</code>, ma la cosa importante è che <a class="external" href="http://peak.telecommunity.com/DevCenter/setuptools#declaring-dependencies" title="http://peak.telecommunity.com/DevCenter/setuptools#declaring-dependencies">include le dependenze</a> necessarie all'installazione dei vari moduli come pre-requisito quando si invoca <code>setup.py</code> così come la possibilità di installare i moduli in <a class="external" href="http://packages.python.org/distribute/setuptools.html#development-mode" title="http://packages.python.org/distribute/setuptools.html#development-mode">modalità sviluppo</a>. Questo permette di editare i file tramite <a class="external" href="http://docs.python.org/library/site.html" title="http://docs.python.org/library/site.html">file .pth</a> che risultano maneggievoli. <code>setuptools</code> fornisce anche <code><a class="external" href="http://packages.python.org/distribute/easy_install.html" title="http://packages.python.org/distribute/easy_install.html">easy_install</a></code> che permette di installare moduli (e relative dipendenze) da <a class="external" href="http://pypi.python.org/pypi" title="http://pypi.python.org/pypi">PyPI</a>. Per esempio, se volessimo installare PyYAML, basterebbe digitare:</p>
<pre>easy_install PyYAML
</pre>
<p>Dal momento che <em>setuptools </em>non è presente di default in Python, avrai sicuramente bisogno di installarlo per usarlo. Puoi installare <code>setuptools</code> da PyPI scaricando il pacchetto, estraendolo, e digitando <code>python setup.py install</code> a linea-di-comando, oppure usare <code><a class="external" href="http://peak.telecommunity.com/dist/ez_setup.py" title="http://peak.telecommunity.com/dist/ez_setup.py">ez_setup.py</a></code>. Puoi scaricarlo ed avviarlo con Python (sono richiesti privilegi di root), oppure in una sezione <a class="external" href="http://www.gnu.org/s/bash/" title="http://www.gnu.org/s/bash/">bash.</a></p>
<pre>sudo python <(curl http://peak.telecommunity.com/dist/ez_setup.py)
</pre>
<p><code>setuptools</code> potrebbe essere già presente in <a href="/en-US/docs/Python/Virtualenv" title="Virtualenv">virtualenv</a>, quindi potresti non avere bisogno di installare (manualmente) <em>setuptools </em>se usi virtualenv. C'è poi <a class="external" href="http://packages.python.org/distribute/" title="http://packages.python.org/distribute/">distribute</a>, un fork di setuptools scritto dal nostro amico <a class="external" href="http://ziade.org/" title="http://ziade.org/">Tarek Ziade</a>. È compatibile con setuptools.</p>
<div class="note"><strong>Note:</strong> È altamente consigliato usare <a href="/en-US/docs/Python/Virtualenv" title="Virtualenv">virtualenv</a> durante la fase di sviluppo.</div>
<p><a class="external" href="http://pypi.python.org/pypi" title="http://pypi.python.org/pypi">Python Package Index (PyPI)</a> è il punto di raccolta centrale per i moduli Python di terze-parti. Se hai bisogno di funzionalità extra in Python, dacci un'occhiata!</p>
<p>Guarda anche: <a class="external" href="http://k0s.org/portfolio/packaging.html">http://k0s.org/portfolio/packaging.html</a></p>
<h2 id="Vedi_anche">Vedi anche:</h2>
<ul>
<li><a class="external" href="http://docs.services.mozilla.com/server-devguide/release.html" title="http://docs.services.mozilla.com/server-devguide/release.html">Releasing an application</a> (documentazione Mozilla Services)</li>
<li><a href="http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy">http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy</a></li>
<li><a class="link-https" href="https://wiki.mozilla.org/Auto-tools/Python101">https://wiki.mozilla.org/Auto-tools/Python101</a></li>
<li><a href="http://www.learnstreet.com/cg/simple/projects/python" title="http://www.learnstreet.com/cg/simple/projects/python">Python Projects </a>di Code Garage</li>
</ul>
|