289 lines
17 KiB
HTML
289 lines
17 KiB
HTML
|
|
|||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|||
|
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|||
|
<title>Mettre en place son environnement de travail — Documentation Formation Python 1</title>
|
|||
|
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
|||
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
|||
|
<script type="text/javascript">
|
|||
|
var DOCUMENTATION_OPTIONS = {
|
|||
|
URL_ROOT: './',
|
|||
|
VERSION: '1',
|
|||
|
COLLAPSE_INDEX: false,
|
|||
|
FILE_SUFFIX: '.html',
|
|||
|
HAS_SOURCE: true,
|
|||
|
SOURCELINK_SUFFIX: '.txt'
|
|||
|
};
|
|||
|
</script>
|
|||
|
<script type="text/javascript" src="_static/jquery.js"></script>
|
|||
|
<script type="text/javascript" src="_static/underscore.js"></script>
|
|||
|
<script type="text/javascript" src="_static/doctools.js"></script>
|
|||
|
<script type="text/javascript" src="_static/translations.js"></script>
|
|||
|
<link rel="index" title="Index" href="genindex.html" />
|
|||
|
<link rel="search" title="Recherche" href="search.html" />
|
|||
|
<link rel="next" title="Typage, types de base" href="type.html" />
|
|||
|
<link rel="prev" title="Prise en main" href="getting-started.html" />
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<div style="background-color: white; text-align: left; padding: 10px 10px 15px 15px">
|
|||
|
<table><tr><td>
|
|||
|
<img src="_static/sphinx.png" alt="logo" />
|
|||
|
</td><td>
|
|||
|
<h1> Programmation python</h1>
|
|||
|
</td></tr></table>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="related" role="navigation" aria-label="related navigation">
|
|||
|
<h3>Navigation</h3>
|
|||
|
<ul>
|
|||
|
<li class="right" style="margin-right: 10px">
|
|||
|
<a href="genindex.html" title="Index général"
|
|||
|
accesskey="I">index</a></li>
|
|||
|
<li class="right" >
|
|||
|
<a href="py-modindex.html" title="Index des modules Python"
|
|||
|
>modules</a> |</li>
|
|||
|
<li class="right" >
|
|||
|
<a href="type.html" title="Typage, types de base"
|
|||
|
accesskey="N">suivant</a> |</li>
|
|||
|
<li class="right" >
|
|||
|
<a href="getting-started.html" title="Prise en main"
|
|||
|
accesskey="P">précédent</a> |</li>
|
|||
|
<a href="index.html">Programmation python </a> »
|
|||
|
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
|
|||
|
<div class="document">
|
|||
|
<div class="documentwrapper">
|
|||
|
<div class="bodywrapper">
|
|||
|
<div class="body" role="main">
|
|||
|
|
|||
|
<div class="section" id="mettre-en-place-son-environnement-de-travail">
|
|||
|
<h1>Mettre en place son environnement de travail<a class="headerlink" href="#mettre-en-place-son-environnement-de-travail" title="Lien permanent vers ce titre">¶</a></h1>
|
|||
|
<div class="section" id="les-editeurs-pour-python">
|
|||
|
<h2>Les éditeurs pour python<a class="headerlink" href="#les-editeurs-pour-python" title="Lien permanent vers ce titre">¶</a></h2>
|
|||
|
<p>N’importe quel éditeur qui respecte les coding standards du pep8 convient :</p>
|
|||
|
<p><a class="reference external" href="https://www.python.org/dev/peps/pep-0008/">https://www.python.org/dev/peps/pep-0008/</a></p>
|
|||
|
<p><a class="reference external" href="https://pep8.org/">pep8</a></p>
|
|||
|
<p>d’une manière générale, de base un éditeur spartiate peut convenir du moment
|
|||
|
que l’intentation de 4 espaces est respectée et que les tablulations sont
|
|||
|
remplacées par des espaces, car le plus important en python c’est l’indentation,
|
|||
|
et le fait de bien voir ou est le règlage de l’encodage (ça doit être en <code class="docutils literal"><span class="pre">utf-8</span></code>)
|
|||
|
Pour voir si ton éditeur est bien configuré, tu prends n’importe quel fichier python
|
|||
|
que tu as créé, puis tu faire un</p>
|
|||
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">pep8</span> <span class="o"><</span><span class="n">mon_fichier</span><span class="o">.</span><span class="n">py</span><span class="o">></span>
|
|||
|
</pre></div>
|
|||
|
</div>
|
|||
|
<p>et <code class="docutils literal"><span class="pre">pep</span></code> va dire ce qui ne va pas en termes de syntaxe.</p>
|
|||
|
</div>
|
|||
|
<div class="section" id="idle">
|
|||
|
<h2>IDLE<a class="headerlink" href="#idle" title="Lien permanent vers ce titre">¶</a></h2>
|
|||
|
<p><a class="reference external" href="https://docs.python.org/2/library/idle.html">https://docs.python.org/2/library/idle.html</a></p>
|
|||
|
<p>Pour information, IDLE est un éditeur intégré (dans la lib standard de python)
|
|||
|
mais je te le déconseille (trop spartiate).</p>
|
|||
|
<p>un framework de développement intégré : <a class="reference internal" href="#term-idle"><span class="xref std std-term">IDLE</span></a></p>
|
|||
|
<dl class="glossary docutils">
|
|||
|
<dt id="term-idle">IDLE</dt>
|
|||
|
<dd><a class="reference external" href="http://docs.python.org/2/library/idle.html">IDLE</a> est un IDE (environnement de développement intégré) mis à disposition
|
|||
|
dans la <a class="reference internal" href="#term-librairie-standard"><span class="xref std std-term">librairie standard</span></a> de python</dd>
|
|||
|
</dl>
|
|||
|
</div>
|
|||
|
<div class="section" id="nano">
|
|||
|
<h2>nano<a class="headerlink" href="#nano" title="Lien permanent vers ce titre">¶</a></h2>
|
|||
|
<p>pour l’exemple, avec <strong>nano</strong>, voici comment faire une config qui permette
|
|||
|
de coder en python. On configure nano avec le <code class="docutils literal"><span class="pre">.nanorc</span></code></p>
|
|||
|
<p>Exemple de <code class="docutils literal"><span class="pre">.nanorc</span></code></p>
|
|||
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># replace les tabulations par 4 espaces</span>
|
|||
|
<span class="nb">set</span> <span class="n">tabsize</span> <span class="mi">4</span>
|
|||
|
<span class="nb">set</span> <span class="n">tabstospaces</span>
|
|||
|
<span class="c1"># indente automatiquement</span>
|
|||
|
<span class="nb">set</span> <span class="n">autoindent</span>
|
|||
|
<span class="c1"># la touche home renvoie en debut de code</span>
|
|||
|
<span class="nb">set</span> <span class="n">smarthome</span>
|
|||
|
<span class="c1"># ne met pas de retour chariot a la fin d'une ligne</span>
|
|||
|
<span class="c1"># si elle depasse la largeur du terminal</span>
|
|||
|
<span class="nb">set</span> <span class="n">nowrap</span>
|
|||
|
<span class="n">unset</span> <span class="n">softwrap</span>
|
|||
|
|
|||
|
<span class="c1"># chargement de plusieur fichiers</span>
|
|||
|
<span class="nb">set</span> <span class="n">multibuffer</span>
|
|||
|
|
|||
|
<span class="c1"># coloration syntaxique</span>
|
|||
|
<span class="c1">## Python</span>
|
|||
|
<span class="c1">#include "/usr/share/nano/python.nanorc"</span>
|
|||
|
</pre></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="section" id="gedit">
|
|||
|
<h2>Gedit<a class="headerlink" href="#gedit" title="Lien permanent vers ce titre">¶</a></h2>
|
|||
|
<p>Gedit c’est très bien pour coder en python, mais de base c’est pas sur un serveur,
|
|||
|
il faut pouvoir être en mode graphique.
|
|||
|
Il faut règler l’indentation à 4 espaces pour respecter le pep8.
|
|||
|
Et règler le replacement des tablulations par des espaces.
|
|||
|
Mais surtout, très vite il faut installer les paquets additionnels, notamment
|
|||
|
pour que gedit supprime les espaces en fin de ligne par exemple.</p>
|
|||
|
<p>Je l’utilise souvent mais il faut des plugins avec
|
|||
|
genre ceux-ci (si tu es sur ubuntu):</p>
|
|||
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">gedit</span><span class="o">-</span><span class="n">plugins</span>
|
|||
|
</pre></div>
|
|||
|
</div>
|
|||
|
<p>dans ce paquet par exemple, l’outil pour commenter-décommenter le code est intéressant
|
|||
|
(sélection d’un paragraphe, puis Ctrl-M)
|
|||
|
tu peux régler après la complétion des parenthèses, etc.</p>
|
|||
|
<p>il y a aussi le paquet developer plugins :</p>
|
|||
|
<p><a class="reference external" href="https://apps.ubuntu.com/cat/applications/gedit-developer-plugins/">https://apps.ubuntu.com/cat/applications/gedit-developer-plugins/</a></p>
|
|||
|
<p>Après avec les plugins gedit commence à bien tenir la route.</p>
|
|||
|
</div>
|
|||
|
<div class="section" id="vi">
|
|||
|
<h2>Vi<a class="headerlink" href="#vi" title="Lien permanent vers ce titre">¶</a></h2>
|
|||
|
<p>Toujours la même problématiques (espaces, tablulation…)
|
|||
|
Donc voici une partie de <code class="docutils literal"><span class="pre">.vimrc</span></code> qui le fait:</p>
|
|||
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="s2">"Pour le collage"</span>
|
|||
|
<span class="nb">set</span> <span class="n">pt</span><span class="o">=<</span><span class="n">F5</span><span class="o">></span>
|
|||
|
<span class="nb">set</span> <span class="n">vb</span> <span class="n">t_vb</span><span class="o">=</span><span class="s2">"</span>
|
|||
|
<span class="nb">set</span> <span class="n">shiftwidth</span><span class="o">=</span><span class="mi">4</span>
|
|||
|
<span class="nb">set</span> <span class="n">expandtab</span>
|
|||
|
<span class="nb">set</span> <span class="n">ts</span><span class="o">=</span><span class="mi">4</span>
|
|||
|
<span class="nb">set</span> <span class="n">sw</span><span class="o">=</span><span class="mi">4</span>
|
|||
|
<span class="n">syntax</span> <span class="n">on</span>
|
|||
|
<span class="n">filetype</span> <span class="n">indent</span> <span class="n">on</span>
|
|||
|
<span class="n">filetype</span> <span class="n">plugin</span> <span class="n">on</span>
|
|||
|
<span class="nb">set</span> <span class="n">autoindent</span>
|
|||
|
<span class="nb">set</span> <span class="n">hlsearch</span> <span class="s2">" Surligne les resultats de recherche</span>
|
|||
|
<span class="nb">set</span> <span class="n">wrap</span> <span class="s2">" Pas de retour a la ligne auto (affichage)</span>
|
|||
|
<span class="nb">set</span> <span class="n">showmatch</span> <span class="s2">" Affiche parenthese correspondante</span>
|
|||
|
<span class="nb">set</span> <span class="n">softtabstop</span><span class="o">=</span><span class="mi">4</span> <span class="s2">" Largeur d'une tabulation</span>
|
|||
|
<span class="s2">"set fdm=indent "</span> <span class="n">Repli</span> <span class="n">selon</span> <span class="n">l</span><span class="s1">'indentation</span>
|
|||
|
</pre></div>
|
|||
|
</div>
|
|||
|
<p>maintenant après il y a un python-mode assez avancé qui permet de faire pas mal de choses.
|
|||
|
(valider avec la syntaxe avec pylint, valider le pep8…)
|
|||
|
Mais il faut une config plus avancée.</p>
|
|||
|
<p>D’une manière générale, il y a la possibilité de valider avec des outils externes (pylint, pychecker, pep8…) et il y a aussi la possibilité de valider tout ça dans un éditeur.</p>
|
|||
|
</div>
|
|||
|
<div class="section" id="configurer-son-editeur-resume">
|
|||
|
<h2>configurer son éditeur : résumé<a class="headerlink" href="#configurer-son-editeur-resume" title="Lien permanent vers ce titre">¶</a></h2>
|
|||
|
<ul class="simple">
|
|||
|
<li>les fichiers sources ont l’extension <code class="docutils literal"><span class="pre">.py</span></code></li>
|
|||
|
<li>une instruction par ligne</li>
|
|||
|
<li>les blocs sont marqués par l’indentation (utilser 4 espaces), règler
|
|||
|
l’éditeur pour transformer les tabulations en espaces</li>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
<div class="section" id="configurer-son-prompt-python">
|
|||
|
<h2>configurer son prompt python<a class="headerlink" href="#configurer-son-prompt-python" title="Lien permanent vers ce titre">¶</a></h2>
|
|||
|
<dl class="envvar">
|
|||
|
<dt id="envvar-PYTHONPATH">
|
|||
|
<code class="descname">PYTHONPATH</code><a class="headerlink" href="#envvar-PYTHONPATH" title="Lien permanent vers cette définition">¶</a></dt>
|
|||
|
<dd><p>pointe par défaut sur le répertoire courant, il est possible d’ajouter
|
|||
|
un path</p>
|
|||
|
</dd></dl>
|
|||
|
|
|||
|
<p>à mettre dans votre <code class="docutils literal"><span class="pre">.bashrc</span></code> :</p>
|
|||
|
<div class="highlight-default"><div class="highlight"><pre><span></span>export PYTHONPATH:`pwd`
|
|||
|
|
|||
|
export PYTHONPATH=$PYTHONPATH:'/usr/share':'/toto/titi/tata'
|
|||
|
|
|||
|
alias pyenv='export PYTHONPATH=`pwd`:$PYTHONPATH'
|
|||
|
|
|||
|
export PYTHONSTARTUP='/home/gwen/.pystartup'
|
|||
|
</pre></div>
|
|||
|
</div>
|
|||
|
<dl class="envvar">
|
|||
|
<dt id="envvar-PYTHONSTARTUP">
|
|||
|
<code class="descname">PYTHONSTARTUP</code><a class="headerlink" href="#envvar-PYTHONSTARTUP" title="Lien permanent vers cette définition">¶</a></dt>
|
|||
|
<dd><p>les trucs à mettre dans vos pytstartups (comme dans vos .bashrc)</p>
|
|||
|
<ul class="simple">
|
|||
|
<li>autocomplétion</li>
|
|||
|
<li>affichage de l’historique</li>
|
|||
|
</ul>
|
|||
|
</dd></dl>
|
|||
|
|
|||
|
<p>exemple de <code class="docutils literal"><span class="pre">.pystartup</span></code></p>
|
|||
|
<p>à télécharger ici : <a class="reference download internal" href="_downloads/pystartup" download=""><code class="xref download docutils literal"><span class="pre">snippets/pystartup</span></code></a></p>
|
|||
|
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># Store the file in ~/.pystartup, and set an environment variable to point to</span>
|
|||
|
<span class="c1"># it, e.g. "export PYTHONSTARTUP=/max/home/itamar/.pystartup" in bash.</span>
|
|||
|
<span class="c1">#</span>
|
|||
|
<span class="c1"># Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the full</span>
|
|||
|
<span class="c1"># path to your home directory.</span>
|
|||
|
<span class="kn">import</span> <span class="nn">rlcompleter</span>
|
|||
|
<span class="kn">import</span> <span class="nn">readline</span>
|
|||
|
<span class="n">readline</span><span class="o">.</span><span class="n">parse_and_bind</span><span class="p">(</span><span class="s2">"tab: complete"</span><span class="p">)</span>
|
|||
|
|
|||
|
<span class="kn">import</span> <span class="nn">os</span>
|
|||
|
<span class="n">histfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"HOME"</span><span class="p">],</span> <span class="s2">".pyhist"</span><span class="p">)</span>
|
|||
|
<span class="k">try</span><span class="p">:</span>
|
|||
|
<span class="n">readline</span><span class="o">.</span><span class="n">read_history_file</span><span class="p">(</span><span class="n">histfile</span><span class="p">)</span>
|
|||
|
<span class="k">except</span> <span class="ne">IOError</span><span class="p">:</span>
|
|||
|
<span class="k">pass</span>
|
|||
|
|
|||
|
<span class="kn">import</span> <span class="nn">atexit</span>
|
|||
|
<span class="n">atexit</span><span class="o">.</span><span class="n">register</span><span class="p">(</span><span class="n">readline</span><span class="o">.</span><span class="n">write_history_file</span><span class="p">,</span> <span class="n">histfile</span><span class="p">)</span>
|
|||
|
<span class="k">del</span> <span class="n">os</span><span class="p">,</span> <span class="n">histfile</span>
|
|||
|
|
|||
|
<span class="c1"># enhanced completion</span>
|
|||
|
<span class="c1">#import rlcompleter2</span>
|
|||
|
<span class="c1">#rlcompleter2.setup()</span>
|
|||
|
</pre></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="section" id="consulter-la-librairie-standard">
|
|||
|
<h2>Consulter la librairie standard<a class="headerlink" href="#consulter-la-librairie-standard" title="Lien permanent vers ce titre">¶</a></h2>
|
|||
|
<dl class="glossary docutils">
|
|||
|
<dt id="term-librairie-standard">librairie standard</dt>
|
|||
|
<dd>Une des règles de base de python est qu’il existe certainement une manière
|
|||
|
conseillé de faire une tâche en python. Le premier réflexe est d’aller
|
|||
|
voir dans la <a class="reference external" href="http://docs.python.org/2.7/library/index.html">librairie standard</a></dd>
|
|||
|
</dl>
|
|||
|
<p>Premier réflexe : la doc en ligne ou bien installée sur votre disque dur.</p>
|
|||
|
<p>la page d’accueil de la doc officielle python :</p>
|
|||
|
<img alt="_images/DocPython.png" src="_images/DocPython.png" />
|
|||
|
<p>et surtout, une fois la librairie standard abordée, la page d’index des
|
|||
|
modules :</p>
|
|||
|
<img alt="_images/ModuleIndex.png" src="_images/ModuleIndex.png" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div style="background-color: white; text-align: left; padding: 10px 10px 15px 15px">
|
|||
|
<a href="search.html"> Recherche</a> |
|
|||
|
<!-- a href="genindex.html"> Genindex</a-->
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="clearer"></div>
|
|||
|
</div>
|
|||
|
<div class="related" role="navigation" aria-label="related navigation">
|
|||
|
<h3>Navigation</h3>
|
|||
|
<ul>
|
|||
|
<li class="right" style="margin-right: 10px">
|
|||
|
<a href="genindex.html" title="Index général"
|
|||
|
>index</a></li>
|
|||
|
<li class="right" >
|
|||
|
<a href="py-modindex.html" title="Index des modules Python"
|
|||
|
>modules</a> |</li>
|
|||
|
<li class="right" >
|
|||
|
<a href="type.html" title="Typage, types de base"
|
|||
|
>suivant</a> |</li>
|
|||
|
<li class="right" >
|
|||
|
<a href="getting-started.html" title="Prise en main"
|
|||
|
>précédent</a> |</li>
|
|||
|
<a href="index.html">Programmation python </a> »
|
|||
|
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
<div class="footer" role="contentinfo">
|
|||
|
© Copyright 2015, cadoles (www.cadoles.com).
|
|||
|
Créé avec <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.7.
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
</html>
|