forked from AFPy/python-docs-fr
774 lines
36 KiB
Plaintext
774 lines
36 KiB
Plaintext
# Copyright (C) 2001-2018, Python Software Foundation
|
||
# For licence information, see README file.
|
||
#
|
||
msgid ""
|
||
msgstr ""
|
||
"Project-Id-Version: Python 3\n"
|
||
"Report-Msgid-Bugs-To: \n"
|
||
"POT-Creation-Date: 2019-09-04 11:33+0200\n"
|
||
"PO-Revision-Date: 2019-08-06 09:57+0200\n"
|
||
"Last-Translator: Zepmanbc <zepman@gmail.com>\n"
|
||
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
||
"Language: fr\n"
|
||
"MIME-Version: 1.0\n"
|
||
"Content-Type: text/plain; charset=UTF-8\n"
|
||
"Content-Transfer-Encoding: 8bit\n"
|
||
"X-Generator: Poedit 2.2.3\n"
|
||
|
||
#: ../Doc/library/zipapp.rst:2
|
||
msgid ":mod:`zipapp` --- Manage executable Python zip archives"
|
||
msgstr ":mod:`zipapp` — Gestion des archives zip exécutables Python"
|
||
|
||
#: ../Doc/library/zipapp.rst:9
|
||
msgid "**Source code:** :source:`Lib/zipapp.py`"
|
||
msgstr "**Code source :** :source:`Lib/zipapp.py`"
|
||
|
||
#: ../Doc/library/zipapp.rst:16
|
||
msgid ""
|
||
"This module provides tools to manage the creation of zip files containing "
|
||
"Python code, which can be :ref:`executed directly by the Python interpreter "
|
||
"<using-on-interface-options>`. The module provides both a :ref:`zipapp-"
|
||
"command-line-interface` and a :ref:`zipapp-python-api`."
|
||
msgstr ""
|
||
"Ce module fournit des outils pour gérer la création de fichiers zip "
|
||
"contenant du code Python, qui peuvent être :ref:`exécutés directement par "
|
||
"l'interpréteur Python <using-on-interface-options>`. Le module fournit à la "
|
||
"fois une interface de ligne de commande :ref:`zipapp-command-line-interface` "
|
||
"et une interface :ref:`zipapp-python-api`."
|
||
|
||
#: ../Doc/library/zipapp.rst:23
|
||
msgid "Basic Example"
|
||
msgstr "Exemple de base"
|
||
|
||
#: ../Doc/library/zipapp.rst:25
|
||
msgid ""
|
||
"The following example shows how the :ref:`zipapp-command-line-interface` can "
|
||
"be used to create an executable archive from a directory containing Python "
|
||
"code. When run, the archive will execute the ``main`` function from the "
|
||
"module ``myapp`` in the archive."
|
||
msgstr ""
|
||
"L'exemple suivant montre comment l'interface de ligne de commande :ref:"
|
||
"`zipapp-command-line-interface` peut être utilisée pour créer une archive "
|
||
"exécutable depuis un répertoire contenant du code Python. Lors de "
|
||
"l'exécution, l'archive exécutera la fonction ``main`` du module ``myapp`` "
|
||
"dans l'archive."
|
||
|
||
#: ../Doc/library/zipapp.rst:40
|
||
msgid "Command-Line Interface"
|
||
msgstr "Interface en ligne de commande"
|
||
|
||
#: ../Doc/library/zipapp.rst:42
|
||
msgid ""
|
||
"When called as a program from the command line, the following form is used:"
|
||
msgstr ""
|
||
"Lorsqu'il est appelé en tant que programme à partir de la ligne de commande, "
|
||
"la syntaxe suivante est utilisée :"
|
||
|
||
#: ../Doc/library/zipapp.rst:48
|
||
msgid ""
|
||
"If *source* is a directory, this will create an archive from the contents of "
|
||
"*source*. If *source* is a file, it should be an archive, and it will be "
|
||
"copied to the target archive (or the contents of its shebang line will be "
|
||
"displayed if the --info option is specified)."
|
||
msgstr ""
|
||
"Si *source* est un répertoire, une archive est créée à partir du contenu de "
|
||
"*source*. Si *source* est un fichier, ce doit être une archive et il est "
|
||
"copié dans l'archive cible (ou le contenu de sa ligne `shebang` est affiché "
|
||
"si l'option ``--info`` est indiquée)."
|
||
|
||
#: ../Doc/library/zipapp.rst:53
|
||
msgid "The following options are understood:"
|
||
msgstr "Les options suivantes sont disponibles :"
|
||
|
||
#: ../Doc/library/zipapp.rst:59
|
||
msgid ""
|
||
"Write the output to a file named *output*. If this option is not specified, "
|
||
"the output filename will be the same as the input *source*, with the "
|
||
"extension ``.pyz`` added. If an explicit filename is given, it is used as "
|
||
"is (so a ``.pyz`` extension should be included if required)."
|
||
msgstr ""
|
||
"Écrit la sortie dans un fichier nommé *output*. Si cette option n'est pas "
|
||
"spécifiée, le nom du fichier de sortie sera le même que celui de l'entrée "
|
||
"*source*, avec l'extension ``.pyz``. Si un nom de fichier explicite est "
|
||
"donné, il est utilisé tel quel (une extension ``.pyz`` doit donc être "
|
||
"incluse si nécessaire)."
|
||
|
||
#: ../Doc/library/zipapp.rst:64
|
||
msgid ""
|
||
"An output filename must be specified if the *source* is an archive (and in "
|
||
"that case, *output* must not be the same as *source*)."
|
||
msgstr ""
|
||
"Un nom de fichier de sortie doit être spécifié si la *source* est une "
|
||
"archive (et, dans ce cas, la *sortie* ne doit pas être la même que la "
|
||
"*source*)."
|
||
|
||
#: ../Doc/library/zipapp.rst:69
|
||
msgid ""
|
||
"Add a ``#!`` line to the archive specifying *interpreter* as the command to "
|
||
"run. Also, on POSIX, make the archive executable. The default is to write "
|
||
"no ``#!`` line, and not make the file executable."
|
||
msgstr ""
|
||
"Ajoute une ligne ``#!`` à l'archive en spécifiant *interpreter* comme "
|
||
"commande à exécuter. Aussi, sur un système POSIX, cela rend l'archive "
|
||
"exécutable. Le comportement par défaut est de ne pas écrire la ligne ``#!`` "
|
||
"et de ne pas rendre le fichier exécutable."
|
||
|
||
#: ../Doc/library/zipapp.rst:75
|
||
msgid ""
|
||
"Write a ``__main__.py`` file to the archive that executes *mainfn*. The "
|
||
"*mainfn* argument should have the form \"pkg.mod:fn\", where \"pkg.mod\" is "
|
||
"a package/module in the archive, and \"fn\" is a callable in the given "
|
||
"module. The ``__main__.py`` file will execute that callable."
|
||
msgstr ""
|
||
"Écrit un fichier ``__main__.py`` dans l'archive qui exécute *mainfn*. "
|
||
"L'argument *mainfn* est de la forme « *pkg.mod:fn* », où « *pkg.mod* » est "
|
||
"un paquet/module dans l'archive, et « *fn* » est un appelable dans le module "
|
||
"donné. Le fichier ``__main__.py`` réalise cet appel."
|
||
|
||
#: ../Doc/library/zipapp.rst:80
|
||
msgid ":option:`--main` cannot be specified when copying an archive."
|
||
msgstr ""
|
||
":option:`--main` ne peut pas être spécifié lors de la copie d'une archive."
|
||
|
||
#: ../Doc/library/zipapp.rst:84
|
||
msgid ""
|
||
"Compress files with the deflate method, reducing the size of the output "
|
||
"file. By default, files are stored uncompressed in the archive."
|
||
msgstr ""
|
||
"Compresse les fichiers avec la méthode *deflate*, réduisant ainsi la taille "
|
||
"du fichier de sortie. Par défaut, les fichiers sont stockés non compressés "
|
||
"dans l'archive."
|
||
|
||
#: ../Doc/library/zipapp.rst:87
|
||
msgid ":option:`--compress` has no effect when copying an archive."
|
||
msgstr ":option:`--compress` n'a aucun effet lors de la copie d'une archive."
|
||
|
||
#: ../Doc/library/zipapp.rst:93
|
||
msgid ""
|
||
"Display the interpreter embedded in the archive, for diagnostic purposes. "
|
||
"In this case, any other options are ignored and SOURCE must be an archive, "
|
||
"not a directory."
|
||
msgstr ""
|
||
"Affiche l'interpréteur intégré dans l'archive, à des fins de diagnostic. "
|
||
"Dans ce cas, toutes les autres options sont ignorées et SOURCE doit être une "
|
||
"archive et non un répertoire."
|
||
|
||
#: ../Doc/library/zipapp.rst:99
|
||
msgid "Print a short usage message and exit."
|
||
msgstr "Affiche un court message d'aide et quitte."
|
||
|
||
#: ../Doc/library/zipapp.rst:105
|
||
msgid "Python API"
|
||
msgstr "API Python"
|
||
|
||
#: ../Doc/library/zipapp.rst:107
|
||
msgid "The module defines two convenience functions:"
|
||
msgstr "Ce module définit deux fonctions utilitaires :"
|
||
|
||
#: ../Doc/library/zipapp.rst:112
|
||
msgid ""
|
||
"Create an application archive from *source*. The source can be any of the "
|
||
"following:"
|
||
msgstr ""
|
||
"Crée une archive d'application à partir de *source*. La source peut être de "
|
||
"natures suivantes :"
|
||
|
||
#: ../Doc/library/zipapp.rst:115
|
||
msgid ""
|
||
"The name of a directory, or a :term:`path-like object` referring to a "
|
||
"directory, in which case a new application archive will be created from the "
|
||
"content of that directory."
|
||
msgstr ""
|
||
"Le nom d'un répertoire, ou un :term:`path-like object` se référant à un "
|
||
"répertoire ; dans ce cas, une nouvelle archive d'application sera créée à "
|
||
"partir du contenu de ce répertoire."
|
||
|
||
#: ../Doc/library/zipapp.rst:118
|
||
msgid ""
|
||
"The name of an existing application archive file, or a :term:`path-like "
|
||
"object` referring to such a file, in which case the file is copied to the "
|
||
"target (modifying it to reflect the value given for the *interpreter* "
|
||
"argument). The file name should include the ``.pyz`` extension, if required."
|
||
msgstr ""
|
||
"Le nom d'un fichier d'archive d'application existant, ou un :term:`path-like "
|
||
"object` se référant à un tel fichier ; dans ce cas, le fichier est copié sur "
|
||
"la cible (en le modifiant pour refléter la valeur donnée à l'argument "
|
||
"*interpreter*). Le nom du fichier doit inclure l'extension ``.pyz``, si "
|
||
"nécessaire."
|
||
|
||
#: ../Doc/library/zipapp.rst:122
|
||
msgid ""
|
||
"A file object open for reading in bytes mode. The content of the file "
|
||
"should be an application archive, and the file object is assumed to be "
|
||
"positioned at the start of the archive."
|
||
msgstr ""
|
||
"Un objet fichier ouvert pour la lecture en mode binaire. Le contenu du "
|
||
"fichier doit être une archive d'application et Python suppose que l'objet "
|
||
"fichier est positionné au début de l'archive."
|
||
|
||
#: ../Doc/library/zipapp.rst:126
|
||
msgid ""
|
||
"The *target* argument determines where the resulting archive will be written:"
|
||
msgstr "L'argument *target* détermine où l'archive résultante sera écrite :"
|
||
|
||
#: ../Doc/library/zipapp.rst:129
|
||
msgid ""
|
||
"If it is the name of a file, or a :term:`path-like object`, the archive will "
|
||
"be written to that file."
|
||
msgstr ""
|
||
"S'il s'agit d'un nom de fichier, ou d'un :term:`path-like object`, l'archive "
|
||
"sera écrite dans ce fichier."
|
||
|
||
#: ../Doc/library/zipapp.rst:131
|
||
msgid ""
|
||
"If it is an open file object, the archive will be written to that file "
|
||
"object, which must be open for writing in bytes mode."
|
||
msgstr ""
|
||
"S'il s'agit d'un objet fichier ouvert, l'archive sera écrite dans cet objet "
|
||
"fichier, qui doit être ouvert pour l'écriture en mode octets."
|
||
|
||
#: ../Doc/library/zipapp.rst:133
|
||
msgid ""
|
||
"If the target is omitted (or ``None``), the source must be a directory and "
|
||
"the target will be a file with the same name as the source, with a ``.pyz`` "
|
||
"extension added."
|
||
msgstr ""
|
||
"Si la cible est omise (ou ``None``), la source doit être un répertoire et la "
|
||
"cible sera un fichier portant le même nom que la source, avec une extension "
|
||
"``.pyz`` ajoutée."
|
||
|
||
#: ../Doc/library/zipapp.rst:137
|
||
msgid ""
|
||
"The *interpreter* argument specifies the name of the Python interpreter with "
|
||
"which the archive will be executed. It is written as a \"shebang\" line at "
|
||
"the start of the archive. On POSIX, this will be interpreted by the OS, and "
|
||
"on Windows it will be handled by the Python launcher. Omitting the "
|
||
"*interpreter* results in no shebang line being written. If an interpreter "
|
||
"is specified, and the target is a filename, the executable bit of the target "
|
||
"file will be set."
|
||
msgstr ""
|
||
"L'argument *interpreter* spécifie le nom de l'interpréteur Python avec "
|
||
"lequel l'archive sera exécutée. Il est écrit dans une ligne *shebang* au "
|
||
"début de l'archive. Sur un système POSIX, cela est interprété par le "
|
||
"système d'exploitation et, sur Windows, il sera géré par le lanceur Python. "
|
||
"L'omission de l'*interpreter* n'entraîne pas l'écriture d'une ligne "
|
||
"*shebang*. Si un interpréteur est spécifié et que la cible est un nom de "
|
||
"fichier, le bit exécutable du fichier cible sera mis à 1."
|
||
|
||
#: ../Doc/library/zipapp.rst:145
|
||
msgid ""
|
||
"The *main* argument specifies the name of a callable which will be used as "
|
||
"the main program for the archive. It can only be specified if the source is "
|
||
"a directory, and the source does not already contain a ``__main__.py`` "
|
||
"file. The *main* argument should take the form \"pkg.module:callable\" and "
|
||
"the archive will be run by importing \"pkg.module\" and executing the given "
|
||
"callable with no arguments. It is an error to omit *main* if the source is "
|
||
"a directory and does not contain a ``__main__.py`` file, as otherwise the "
|
||
"resulting archive would not be executable."
|
||
msgstr ""
|
||
"L'argument *main* spécifie le nom d'un appelable, utilisé comme programme "
|
||
"principal pour l'archive. Il ne peut être spécifié que si la source est un "
|
||
"répertoire et si la source ne contient pas déjà un fichier ``__main__.py``. "
|
||
"L'argument *main* doit prendre la forme ``pkg.module:callable`` et l'archive "
|
||
"sera exécutée en important ``pkg.module`` et en exécutant l'appelable donné "
|
||
"sans argument. Omettre *main* est une erreur si la source est un répertoire "
|
||
"et ne contient pas un fichier ``__main__.py`` car, dans ce cas, l'archive "
|
||
"résultante ne serait pas exécutable."
|
||
|
||
#: ../Doc/library/zipapp.rst:155
|
||
msgid ""
|
||
"The optional *filter* argument specifies a callback function that is passed "
|
||
"a Path object representing the path to the file being added (relative to the "
|
||
"source directory). It should return ``True`` if the file is to be added."
|
||
msgstr ""
|
||
"L'argument optionnel *filter* spécifie une fonction de rappel à laquelle on "
|
||
"passe un objet *Path* représentant le chemin du fichier à ajouter (par "
|
||
"rapport au répertoire source). Elle doit renvoyer ``True`` si le fichier "
|
||
"doit effectivement être ajouté."
|
||
|
||
#: ../Doc/library/zipapp.rst:160
|
||
msgid ""
|
||
"The optional *compressed* argument determines whether files are compressed. "
|
||
"If set to ``True``, files in the archive are compressed with the deflate "
|
||
"method; otherwise, files are stored uncompressed. This argument has no "
|
||
"effect when copying an existing archive."
|
||
msgstr ""
|
||
"L'argument optionnel *compressed* détermine si les fichiers doivent être "
|
||
"compressés. S'il vaut ``True``, les fichiers de l'archive sont compressés "
|
||
"avec l'algorithme *deflate* ; sinon, les fichiers sont stockés non "
|
||
"compressés. Cet argument n'a aucun effet lors de la copie d'une archive "
|
||
"existante."
|
||
|
||
#: ../Doc/library/zipapp.rst:165
|
||
msgid ""
|
||
"If a file object is specified for *source* or *target*, it is the caller's "
|
||
"responsibility to close it after calling create_archive."
|
||
msgstr ""
|
||
"Si un objet fichier est spécifié pour *source* ou *target*, il est de la "
|
||
"responsabilité de l'appelant de le fermer après avoir appelé "
|
||
"``create_archive``."
|
||
|
||
#: ../Doc/library/zipapp.rst:168
|
||
msgid ""
|
||
"When copying an existing archive, file objects supplied only need ``read`` "
|
||
"and ``readline``, or ``write`` methods. When creating an archive from a "
|
||
"directory, if the target is a file object it will be passed to the ``zipfile."
|
||
"ZipFile`` class, and must supply the methods needed by that class."
|
||
msgstr ""
|
||
"Lors de la copie d'une archive existante, les objets fichier fournis n'ont "
|
||
"besoin que des méthodes ``read`` et ``readline`` ou ``write``. Lors de la "
|
||
"création d'une archive à partir d'un répertoire, si la cible est un objet "
|
||
"fichier, elle sera passée à la classe ``zipfile.ZipFile`` et devra fournir "
|
||
"les méthodes nécessaires à cette classe."
|
||
|
||
#: ../Doc/library/zipapp.rst:174
|
||
msgid "Added the *filter* and *compressed* arguments."
|
||
msgstr "Ajout des arguments *filter* et *compressed*."
|
||
|
||
#: ../Doc/library/zipapp.rst:179
|
||
msgid ""
|
||
"Return the interpreter specified in the ``#!`` line at the start of the "
|
||
"archive. If there is no ``#!`` line, return :const:`None`. The *archive* "
|
||
"argument can be a filename or a file-like object open for reading in bytes "
|
||
"mode. It is assumed to be at the start of the archive."
|
||
msgstr ""
|
||
"Renvoie l'interpréteur spécifié dans la ligne ``#!`` au début de l'archive. "
|
||
"S'il n'y a pas de ligne ``#!``, renvoie :const:`None`. L'argument *archive* "
|
||
"peut être un nom de fichier ou un objet de type fichier ouvert à la lecture "
|
||
"en mode binaire. Python suppose qu'il est au début de l'archive."
|
||
|
||
#: ../Doc/library/zipapp.rst:188
|
||
msgid "Examples"
|
||
msgstr "Exemples"
|
||
|
||
#: ../Doc/library/zipapp.rst:190
|
||
msgid "Pack up a directory into an archive, and run it."
|
||
msgstr "Regroupe le contenu d'un répertoire dans une archive, puis l'exécute."
|
||
|
||
#: ../Doc/library/zipapp.rst:198
|
||
msgid "The same can be done using the :func:`create_archive` function::"
|
||
msgstr ""
|
||
"La même chose peut être faite en utilisant la fonction :func:"
|
||
"`create_archive` : ::"
|
||
|
||
#: ../Doc/library/zipapp.rst:203
|
||
msgid ""
|
||
"To make the application directly executable on POSIX, specify an interpreter "
|
||
"to use."
|
||
msgstr ""
|
||
"Pour rendre l'application directement exécutable sur un système POSIX, "
|
||
"spécifiez un interpréteur à utiliser."
|
||
|
||
#: ../Doc/library/zipapp.rst:212
|
||
msgid ""
|
||
"To replace the shebang line on an existing archive, create a modified "
|
||
"archive using the :func:`create_archive` function::"
|
||
msgstr ""
|
||
"Pour remplacer la ligne *shebang* sur une archive existante, créez une "
|
||
"archive modifiée en utilisant la fonction :func:`create_archive` : ::"
|
||
|
||
#: ../Doc/library/zipapp.rst:218
|
||
msgid ""
|
||
"To update the file in place, do the replacement in memory using a :class:"
|
||
"`BytesIO` object, and then overwrite the source afterwards. Note that there "
|
||
"is a risk when overwriting a file in place that an error will result in the "
|
||
"loss of the original file. This code does not protect against such errors, "
|
||
"but production code should do so. Also, this method will only work if the "
|
||
"archive fits in memory::"
|
||
msgstr ""
|
||
"Pour mettre à jour le fichier sans créer de copie locale, effectuez le "
|
||
"remplacement en mémoire à l'aide d'un objet :class:`BytesIO`, puis écrasez "
|
||
"la source par la suite. Notez qu'il y a un risque lors de l'écrasement d'un "
|
||
"fichier local qu'une erreur entraîne la perte du fichier original. Ce code "
|
||
"ne protège pas contre de telles erreurs, assurez-vous de prendre les mesures "
|
||
"nécessaires en production. De plus, cette méthode ne fonctionnera que si "
|
||
"l'archive tient en mémoire : ::"
|
||
|
||
#: ../Doc/library/zipapp.rst:236
|
||
msgid "Specifying the Interpreter"
|
||
msgstr "Spécification de l'interprète"
|
||
|
||
#: ../Doc/library/zipapp.rst:238
|
||
msgid ""
|
||
"Note that if you specify an interpreter and then distribute your application "
|
||
"archive, you need to ensure that the interpreter used is portable. The "
|
||
"Python launcher for Windows supports most common forms of POSIX ``#!`` line, "
|
||
"but there are other issues to consider:"
|
||
msgstr ""
|
||
"Notez que si vous spécifiez un interpréteur et que vous distribuez ensuite "
|
||
"votre archive d'application, vous devez vous assurer que l'interpréteur "
|
||
"utilisé est portable. Le lanceur Python pour Windows gère la plupart des "
|
||
"formes courantes de la ligne POSIX ``#!``, mais il y a d'autres problèmes à "
|
||
"considérer :"
|
||
|
||
#: ../Doc/library/zipapp.rst:243
|
||
msgid ""
|
||
"If you use \"/usr/bin/env python\" (or other forms of the \"python\" "
|
||
"command, such as \"/usr/bin/python\"), you need to consider that your users "
|
||
"may have either Python 2 or Python 3 as their default, and write your code "
|
||
"to work under both versions."
|
||
msgstr ""
|
||
"Si vous utilisez ``/usr/bin/env python`` (ou d'autres formes de la commande "
|
||
"*python*, comme ``/usr/bin/python``), vous devez considérer que vos "
|
||
"utilisateurs peuvent avoir Python 2 ou Python 3 par défaut, et écrire votre "
|
||
"code pour fonctionner dans les deux versions."
|
||
|
||
#: ../Doc/library/zipapp.rst:247
|
||
msgid ""
|
||
"If you use an explicit version, for example \"/usr/bin/env python3\" your "
|
||
"application will not work for users who do not have that version. (This may "
|
||
"be what you want if you have not made your code Python 2 compatible)."
|
||
msgstr ""
|
||
"Si vous utilisez une version explicite, par exemple ``/usr/bin/env python3`` "
|
||
"votre application ne fonctionnera pas pour les utilisateurs qui n'ont pas "
|
||
"cette version. (C'est peut-être ce que vous voulez si vous n'avez pas rendu "
|
||
"votre code compatible Python 2)."
|
||
|
||
#: ../Doc/library/zipapp.rst:250
|
||
msgid ""
|
||
"There is no way to say \"python X.Y or later\", so be careful of using an "
|
||
"exact version like \"/usr/bin/env python3.4\" as you will need to change "
|
||
"your shebang line for users of Python 3.5, for example."
|
||
msgstr ""
|
||
"Il n'y a aucun moyen de dire « python X.Y ou supérieur » donc faites "
|
||
"attention si vous utilisez une version exacte comme ``/usr/bin/env "
|
||
"python3.4`` car vous devrez changer votre ligne *shebang* pour les "
|
||
"utilisateurs de Python 3.5, par exemple."
|
||
|
||
#: ../Doc/library/zipapp.rst:254
|
||
msgid ""
|
||
"Typically, you should use an \"/usr/bin/env python2\" or \"/usr/bin/env "
|
||
"python3\", depending on whether your code is written for Python 2 or 3."
|
||
msgstr ""
|
||
"Normalement, vous devriez utiliser un ``/usr/bin/env python2`` ou ``/usr/bin/"
|
||
"env python3``, selon que votre code soit écrit pour Python 2 ou 3."
|
||
|
||
#: ../Doc/library/zipapp.rst:259
|
||
msgid "Creating Standalone Applications with zipapp"
|
||
msgstr "Création d'applications autonomes avec *zipapp*"
|
||
|
||
#: ../Doc/library/zipapp.rst:261
|
||
msgid ""
|
||
"Using the :mod:`zipapp` module, it is possible to create self-contained "
|
||
"Python programs, which can be distributed to end users who only need to have "
|
||
"a suitable version of Python installed on their system. The key to doing "
|
||
"this is to bundle all of the application's dependencies into the archive, "
|
||
"along with the application code."
|
||
msgstr ""
|
||
"En utilisant le module :mod:`zipapp`, il est possible de créer des "
|
||
"programmes Python qui peuvent être distribués à des utilisateurs finaux dont "
|
||
"le seul pré-requis est d'avoir la bonne version de Python installée sur leur "
|
||
"ordinateur. Pour y arriver, la clé est de regrouper toutes les dépendances "
|
||
"de l'application dans l'archive avec le code source de l'application."
|
||
|
||
#: ../Doc/library/zipapp.rst:267
|
||
msgid "The steps to create a standalone archive are as follows:"
|
||
msgstr "Les étapes pour créer une archive autonome sont les suivantes :"
|
||
|
||
#: ../Doc/library/zipapp.rst:269
|
||
msgid ""
|
||
"Create your application in a directory as normal, so you have a ``myapp`` "
|
||
"directory containing a ``__main__.py`` file, and any supporting application "
|
||
"code."
|
||
msgstr ""
|
||
"Créez votre application dans un répertoire comme d'habitude, de manière à "
|
||
"avoir un répertoire ``myapp`` contenant un fichier ``__main__.py`` et tout "
|
||
"le code de l'application correspondante."
|
||
|
||
#: ../Doc/library/zipapp.rst:273
|
||
msgid ""
|
||
"Install all of your application's dependencies into the ``myapp`` directory, "
|
||
"using pip:"
|
||
msgstr ""
|
||
"Installez toutes les dépendances de votre application dans le répertoire "
|
||
"``myapp`` en utilisant *pip* :"
|
||
|
||
#: ../Doc/library/zipapp.rst:280
|
||
msgid ""
|
||
"(this assumes you have your project requirements in a ``requirements.txt`` "
|
||
"file - if not, you can just list the dependencies manually on the pip "
|
||
"command line)."
|
||
msgstr ""
|
||
"(ceci suppose que vous ayez vos dépendances de projet dans un fichier "
|
||
"``requirements.txt`` — sinon vous pouvez simplement lister les dépendances "
|
||
"manuellement sur la ligne de commande *pip*)."
|
||
|
||
#: ../Doc/library/zipapp.rst:284
|
||
msgid ""
|
||
"Optionally, delete the ``.dist-info`` directories created by pip in the "
|
||
"``myapp`` directory. These hold metadata for pip to manage the packages, and "
|
||
"as you won't be making any further use of pip they aren't required - "
|
||
"although it won't do any harm if you leave them."
|
||
msgstr ""
|
||
"Si nécessaire, supprimez les répertoires ``.dist-info`` créés par *pip* dans "
|
||
"le répertoire ``myapp``. Ceux-ci contiennent des métadonnées pour *pip* afin "
|
||
"de gérer les paquets et, comme vous n'utiliserez plus *pip*, ils ne sont "
|
||
"pas nécessaires (c'est sans conséquence si vous les laissez)."
|
||
|
||
#: ../Doc/library/zipapp.rst:289
|
||
msgid "Package the application using:"
|
||
msgstr "Regroupez le tout à l'aide de :"
|
||
|
||
#: ../Doc/library/zipapp.rst:295
|
||
msgid ""
|
||
"This will produce a standalone executable, which can be run on any machine "
|
||
"with the appropriate interpreter available. See :ref:`zipapp-specifying-the-"
|
||
"interpreter` for details. It can be shipped to users as a single file."
|
||
msgstr ""
|
||
"Cela produira un exécutable autonome qui peut être exécuté sur n'importe "
|
||
"quelle machine avec l'interpréteur approprié disponible. Voir :ref:`zipapp-"
|
||
"specifying-the-interpreter` pour plus de détails. Il peut être envoyé aux "
|
||
"utilisateurs sous la forme d'un seul fichier."
|
||
|
||
#: ../Doc/library/zipapp.rst:299
|
||
msgid ""
|
||
"On Unix, the ``myapp.pyz`` file is executable as it stands. You can rename "
|
||
"the file to remove the ``.pyz`` extension if you prefer a \"plain\" command "
|
||
"name. On Windows, the ``myapp.pyz[w]`` file is executable by virtue of the "
|
||
"fact that the Python interpreter registers the ``.pyz`` and ``.pyzw`` file "
|
||
"extensions when installed."
|
||
msgstr ""
|
||
"Sous Unix, le fichier ``myapp.pyz`` est exécutable tel quel. Vous pouvez "
|
||
"renommer le fichier pour supprimer l'extension ``.pyz`` si vous préférez un "
|
||
"nom de commande « simple ». Sous Windows, le fichier ``myapp.pyz[w]`` est "
|
||
"exécutable en vertu du fait que l'interpréteur Python est associé aux "
|
||
"extensions de fichier ``.pyz`` et ``.pyzw`` une fois installé."
|
||
|
||
#: ../Doc/library/zipapp.rst:307
|
||
msgid "Making a Windows executable"
|
||
msgstr "Création d'un exécutable Windows"
|
||
|
||
#: ../Doc/library/zipapp.rst:309
|
||
msgid ""
|
||
"On Windows, registration of the ``.pyz`` extension is optional, and "
|
||
"furthermore, there are certain places that don't recognise registered "
|
||
"extensions \"transparently\" (the simplest example is that ``subprocess."
|
||
"run(['myapp'])`` won't find your application - you need to explicitly "
|
||
"specify the extension)."
|
||
msgstr ""
|
||
"Sous Windows, l'association de Python à l'extension ``.pyz`` est facultative "
|
||
"et, de plus, il y a certains mécanismes qui ne reconnaissent pas les "
|
||
"extensions enregistrées de manière « transparente » (l'exemple le plus "
|
||
"simple est que ``subprocess.run(['myapp'])`` ne trouvera pas votre "
|
||
"application — vous devez explicitement spécifier l'extension)."
|
||
|
||
#: ../Doc/library/zipapp.rst:315
|
||
msgid ""
|
||
"On Windows, therefore, it is often preferable to create an executable from "
|
||
"the zipapp. This is relatively easy, although it does require a C "
|
||
"compiler. The basic approach relies on the fact that zipfiles can have "
|
||
"arbitrary data prepended, and Windows exe files can have arbitrary data "
|
||
"appended. So by creating a suitable launcher and tacking the ``.pyz`` file "
|
||
"onto the end of it, you end up with a single-file executable that runs your "
|
||
"application."
|
||
msgstr ""
|
||
"Sous Windows, il est donc souvent préférable de créer un exécutable à partir "
|
||
"du *zipapp*. C'est relativement facile bien que cela nécessite un "
|
||
"compilateur C. L'astuce repose sur le fait que les fichiers zip peuvent "
|
||
"avoir des données arbitraires au début et les fichiers *exe* de Windows "
|
||
"peuvent avoir des données arbitraires à la fin. Ainsi, en créant un lanceur "
|
||
"approprié et en rajoutant le fichier ``.pyz`` à sa fin, vous obtenez un "
|
||
"fichier unique qui exécute votre application."
|
||
|
||
#: ../Doc/library/zipapp.rst:322
|
||
msgid "A suitable launcher can be as simple as the following::"
|
||
msgstr "Un lanceur approprié peut être aussi simple que ce qui suit : ::"
|
||
|
||
#: ../Doc/library/zipapp.rst:347
|
||
msgid ""
|
||
"If you define the ``WINDOWS`` preprocessor symbol, this will generate a GUI "
|
||
"executable, and without it, a console executable."
|
||
msgstr ""
|
||
"Si vous définissez le symbole du préprocesseur ``WINDOWS`` cela va générer "
|
||
"un exécutable IUG, et sans lui, un exécutable console."
|
||
|
||
#: ../Doc/library/zipapp.rst:350
|
||
msgid ""
|
||
"To compile the executable, you can either just use the standard MSVC command "
|
||
"line tools, or you can take advantage of the fact that distutils knows how "
|
||
"to compile Python source::"
|
||
msgstr ""
|
||
"Pour compiler l'exécutable, vous pouvez soit simplement utiliser les outils "
|
||
"standards en ligne de commande *MSVC*, soit profiter du fait que *distutils* "
|
||
"sait comment compiler les sources Python: ::"
|
||
|
||
#: ../Doc/library/zipapp.rst:377
|
||
msgid ""
|
||
"The resulting launcher uses the \"Limited ABI\", so it will run unchanged "
|
||
"with any version of Python 3.x. All it needs is for Python (``python3."
|
||
"dll``) to be on the user's ``PATH``."
|
||
msgstr ""
|
||
"Le lanceur résultant utilise le « Limited ABI » donc il fonctionnera sans "
|
||
"changement avec n'importe quelle version de Python 3.x. Tout ce dont il a "
|
||
"besoin est que Python (``python3.dll``) soit sur le ``PATH`` de "
|
||
"l'utilisateur."
|
||
|
||
#: ../Doc/library/zipapp.rst:381
|
||
msgid ""
|
||
"For a fully standalone distribution, you can distribute the launcher with "
|
||
"your application appended, bundled with the Python \"embedded\" "
|
||
"distribution. This will run on any PC with the appropriate architecture (32 "
|
||
"bit or 64 bit)."
|
||
msgstr ""
|
||
"Pour une distribution entièrement autonome vous pouvez distribuer le lanceur "
|
||
"avec votre application en fin de fichier, empaqueté avec la distribution "
|
||
"*embedded* Python. Ceci fonctionnera sur n'importe quel ordinateur avec "
|
||
"l'architecture appropriée (32 bits ou 64 bits)."
|
||
|
||
#: ../Doc/library/zipapp.rst:387
|
||
msgid "Caveats"
|
||
msgstr "Mises en garde"
|
||
|
||
#: ../Doc/library/zipapp.rst:389
|
||
msgid ""
|
||
"There are some limitations to the process of bundling your application into "
|
||
"a single file. In most, if not all, cases they can be addressed without "
|
||
"needing major changes to your application."
|
||
msgstr ""
|
||
"Il y a certaines limites à l'empaquetage de votre application dans un seul "
|
||
"fichier. Dans la plupart des cas, si ce n'est tous, elles peuvent être "
|
||
"traitées sans qu'il soit nécessaire d'apporter de modifications majeures à "
|
||
"votre application."
|
||
|
||
#: ../Doc/library/zipapp.rst:393
|
||
msgid ""
|
||
"If your application depends on a package that includes a C extension, that "
|
||
"package cannot be run from a zip file (this is an OS limitation, as "
|
||
"executable code must be present in the filesystem for the OS loader to load "
|
||
"it). In this case, you can exclude that dependency from the zipfile, and "
|
||
"either require your users to have it installed, or ship it alongside your "
|
||
"zipfile and add code to your ``__main__.py`` to include the directory "
|
||
"containing the unzipped module in ``sys.path``. In this case, you will need "
|
||
"to make sure to ship appropriate binaries for your target architecture(s) "
|
||
"(and potentially pick the correct version to add to ``sys.path`` at runtime, "
|
||
"based on the user's machine)."
|
||
msgstr ""
|
||
"Si votre application dépend d'un paquet qui inclut une extension C, ce "
|
||
"paquet ne peut pas être exécuté à partir d'un fichier zip (c'est une "
|
||
"limitation du système d'exploitation, car le code exécutable doit être "
|
||
"présent dans le système de fichiers pour que le lanceur de l'OS puisse le "
|
||
"charger). Dans ce cas, vous pouvez exclure cette dépendance du fichier zip "
|
||
"et, soit demander à vos utilisateurs de l'installer, soit la fournir avec "
|
||
"votre fichier zip et ajouter du code à votre fichier ``__main__.py`` pour "
|
||
"inclure le répertoire contenant le module décompressé dans ``sys.path``. "
|
||
"Dans ce cas, vous devrez vous assurer d'envoyer les binaires appropriés pour "
|
||
"votre ou vos architecture(s) cible(s) (et éventuellement choisir la bonne "
|
||
"version à ajouter à ``sys.path`` au moment de l'exécution, basée sur la "
|
||
"machine de l'utilisateur)."
|
||
|
||
#: ../Doc/library/zipapp.rst:403
|
||
msgid ""
|
||
"If you are shipping a Windows executable as described above, you either need "
|
||
"to ensure that your users have ``python3.dll`` on their PATH (which is not "
|
||
"the default behaviour of the installer) or you should bundle your "
|
||
"application with the embedded distribution."
|
||
msgstr ""
|
||
"Si vous livrez un exécutable Windows comme décrit ci-dessus, vous devez vous "
|
||
"assurer que vos utilisateurs ont ``python3.dll`` sur leur PATH (ce qui n'est "
|
||
"pas le comportement par défaut de l'installateur) ou vous devez inclure la "
|
||
"distribution intégrée dans votre application."
|
||
|
||
#: ../Doc/library/zipapp.rst:408
|
||
msgid ""
|
||
"The suggested launcher above uses the Python embedding API. This means that "
|
||
"in your application, ``sys.executable`` will be your application, and *not* "
|
||
"a conventional Python interpreter. Your code and its dependencies need to "
|
||
"be prepared for this possibility. For example, if your application uses "
|
||
"the :mod:`multiprocessing` module, it will need to call :func:"
|
||
"`multiprocessing.set_executable` to let the module know where to find the "
|
||
"standard Python interpreter."
|
||
msgstr ""
|
||
"Le lanceur suggéré ci-dessus utilise l'API d'intégration Python. Cela "
|
||
"signifie que dans votre application ``sys.executable`` sera votre "
|
||
"application et *pas* un interpréteur Python classique. Votre code et ses "
|
||
"dépendances doivent être préparés à cette possibilité. Par exemple, si "
|
||
"votre application utilise le module :mod:`multiprocessing`, elle devra "
|
||
"appeler :func:`multiprocessing.set_executable` pour que le module sache où "
|
||
"trouver l'interpréteur Python standard."
|
||
|
||
#: ../Doc/library/zipapp.rst:418
|
||
msgid "The Python Zip Application Archive Format"
|
||
msgstr "Le format d'archive d'application Zip Python"
|
||
|
||
#: ../Doc/library/zipapp.rst:420
|
||
msgid ""
|
||
"Python has been able to execute zip files which contain a ``__main__.py`` "
|
||
"file since version 2.6. In order to be executed by Python, an application "
|
||
"archive simply has to be a standard zip file containing a ``__main__.py`` "
|
||
"file which will be run as the entry point for the application. As usual for "
|
||
"any Python script, the parent of the script (in this case the zip file) will "
|
||
"be placed on :data:`sys.path` and thus further modules can be imported from "
|
||
"the zip file."
|
||
msgstr ""
|
||
"Python est capable d'exécuter des fichiers zip qui contiennent un fichier "
|
||
"``__main__.py`` depuis la version 2.6. Pour être exécutée par Python, une "
|
||
"archive d'application doit simplement être un fichier zip standard contenant "
|
||
"un fichier ``__main__.py`` qui sera exécuté comme point d'entrée de "
|
||
"l'application. Comme d'habitude pour tout script Python, le parent du "
|
||
"script (dans ce cas le fichier zip) sera placé sur :data:`sys.path` et ainsi "
|
||
"d'autres modules pourront être importés depuis le fichier zip."
|
||
|
||
#: ../Doc/library/zipapp.rst:427
|
||
msgid ""
|
||
"The zip file format allows arbitrary data to be prepended to a zip file. "
|
||
"The zip application format uses this ability to prepend a standard POSIX "
|
||
"\"shebang\" line to the file (``#!/path/to/interpreter``)."
|
||
msgstr ""
|
||
"Le format de fichier zip permet d'ajouter des données arbitraires à un "
|
||
"fichier zip. Le format de l'application zip utilise cette possibilité pour "
|
||
"préfixer une ligne *shebang* POSIX standard dans le fichier (``#!/path/to/"
|
||
"interpreter``)."
|
||
|
||
#: ../Doc/library/zipapp.rst:431
|
||
msgid "Formally, the Python zip application format is therefore:"
|
||
msgstr "Formellement, le format d'application zip de Python est donc :"
|
||
|
||
#: ../Doc/library/zipapp.rst:433
|
||
msgid ""
|
||
"An optional shebang line, containing the characters ``b'#!'`` followed by an "
|
||
"interpreter name, and then a newline (``b'\\n'``) character. The "
|
||
"interpreter name can be anything acceptable to the OS \"shebang\" "
|
||
"processing, or the Python launcher on Windows. The interpreter should be "
|
||
"encoded in UTF-8 on Windows, and in :func:`sys.getfilesystemencoding()` on "
|
||
"POSIX."
|
||
msgstr ""
|
||
"Une ligne *shebang* facultative, contenant les caractères ``b'#!`` suivis "
|
||
"d'un nom d’interpréteur, puis un caractère fin de ligne (``b'\\n'``). Le "
|
||
"nom de l'interpréteur peut être n'importe quoi acceptable pour le traitement "
|
||
"*shebang* de l'OS, ou le lanceur Python sous Windows. L'interpréteur doit "
|
||
"être encodé en UTF-8 sous Windows, et en :func:`sys.getfilesystemencoding()` "
|
||
"sur POSIX."
|
||
|
||
#: ../Doc/library/zipapp.rst:438
|
||
msgid ""
|
||
"Standard zipfile data, as generated by the :mod:`zipfile` module. The "
|
||
"zipfile content *must* include a file called ``__main__.py`` (which must be "
|
||
"in the \"root\" of the zipfile - i.e., it cannot be in a subdirectory). The "
|
||
"zipfile data can be compressed or uncompressed."
|
||
msgstr ""
|
||
"Des données *zipfile* standards, telles que générées par le module :mod:"
|
||
"`zipfile`. Le contenu du fichier zip *doit* inclure un fichier appelé "
|
||
"``__main__.py`` (qui doit se trouver à la racine du fichier zip — c'est-à-"
|
||
"dire qu'il ne peut se trouver dans un sous-répertoire). Les données du "
|
||
"fichier zip peuvent être compressées ou non."
|
||
|
||
#: ../Doc/library/zipapp.rst:443
|
||
msgid ""
|
||
"If an application archive has a shebang line, it may have the executable bit "
|
||
"set on POSIX systems, to allow it to be executed directly."
|
||
msgstr ""
|
||
"Si une archive d'application a une ligne *shebang*, elle peut avoir le bit "
|
||
"exécutable activé sur les systèmes POSIX, pour lui permettre d'être exécutée "
|
||
"directement."
|
||
|
||
#: ../Doc/library/zipapp.rst:446
|
||
msgid ""
|
||
"There is no requirement that the tools in this module are used to create "
|
||
"application archives - the module is a convenience, but archives in the "
|
||
"above format created by any means are acceptable to Python."
|
||
msgstr ""
|
||
"Vous pouvez créer des archives d'applications sans utiliser les outils de ce "
|
||
"module — le module existe pour faciliter les choses, mais les archives, "
|
||
"créées par n'importe quel moyen tout en respectant le format ci-dessus, sont "
|
||
"valides pour Python."
|