# 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: 2020-08-24 09:01+0200\n" "PO-Revision-Date: 2019-10-19 23:06+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \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" #: extending/building.rst:7 msgid "Building C and C++ Extensions" msgstr "Construire des extensions C et C++" #: extending/building.rst:9 msgid "" "A C extension for CPython is a shared library (e.g. a ``.so`` file on Linux, " "``.pyd`` on Windows), which exports an *initialization function*." msgstr "" "Une extension C pour CPython est une bibliothèque partagée (Un ``.so`` sur " "Linux, un ``.pyd`` sur Windows), qui expose une *fonction d'initialisation*." #: extending/building.rst:12 msgid "" "To be importable, the shared library must be available on :envvar:" "`PYTHONPATH`, and must be named after the module name, with an appropriate " "extension. When using distutils, the correct filename is generated " "automatically." msgstr "" "Pour pouvoir être importée, la bibliothèque partagée doit pourvoir être " "trouvée dans :envvar:`PYTHONPATH`, et doit porter le nom du module, avec " "l'extension appropriée. En utilisant *distutils*, le nom est généré " "automatiquement." #: extending/building.rst:16 msgid "The initialization function has the signature:" msgstr "La fonction d'initialisation doit avoir le prototype :" #: extending/building.rst:20 msgid "" "It returns either a fully-initialized module, or a :c:type:`PyModuleDef` " "instance. See :ref:`initializing-modules` for details." msgstr "" "Elle doit donner soit un module entièrement initialisé, soit une instance " "de :c:type:`PyModuleDef`. Voir :ref:`initializing-modules` pour plus de " "détails." #: extending/building.rst:25 msgid "" "For modules with ASCII-only names, the function must be named " "``PyInit_``, with ```` replaced by the name of the " "module. When using :ref:`multi-phase-initialization`, non-ASCII module names " "are allowed. In this case, the initialization function name is " "``PyInitU_``, with ```` encoded using Python's " "*punycode* encoding with hyphens replaced by underscores. In Python::" msgstr "" "Pour les modules dont les noms sont entièrement en ASCII, la fonction doit " "être nommée ``PyInit_``, dont ```` est remplacé par " "le nom du module. En utilisant :ref:`multi-phase-initialization`, il est " "possible d'utiliser des noms de modules comptant des caractères non ASCII. " "Dans ce cas, le nom de la fonction d'initialisation est " "``PyInitU_``, où ``modulename`` est encodé avec l'encodage " "*punyencode* de Python, dont les tirets sont remplacés par des tirets-bas. " "En Python ça donne ::" #: extending/building.rst:39 msgid "" "It is possible to export multiple modules from a single shared library by " "defining multiple initialization functions. However, importing them requires " "using symbolic links or a custom importer, because by default only the " "function corresponding to the filename is found. See the *\"Multiple modules " "in one library\"* section in :pep:`489` for details." msgstr "" "Il est possible d'exporter plusieurs modules depuis une seule bibliothèque " "partagée en définissant plusieurs fonctions d'initialisation. Cependant pour " "les importer, un lien symbolique doit être créé pour chacun, ou un " "*importer* personnalisé, puisque par défaut seule la fonction correspondant " "au nom du fichier est cherchée. Voir le chapitre *\"Multiple modules in one " "library\"* dans la :pep:`489` pour plus d'informations." #: extending/building.rst:49 msgid "Building C and C++ Extensions with distutils" msgstr "Construire les extensions C et C++ avec *distutils*" #: extending/building.rst:53 msgid "" "Extension modules can be built using distutils, which is included in " "Python. Since distutils also supports creation of binary packages, users " "don't necessarily need a compiler and distutils to install the extension." msgstr "" "Des modules d'extension peuvent être construits avec *distutils*, qui est " "inclus dans Python. Puisque *distutils* gère aussi la création de paquets " "binaires, les utilisateurs n'auront pas nécessairement besoin ni d'un " "compilateur ni de *distutils* pour installer l'extension." #: extending/building.rst:57 msgid "" "A distutils package contains a driver script, :file:`setup.py`. This is a " "plain Python file, which, in the most simple case, could look like this:" msgstr "" "Un paquet *distutils* contient un script :file:`setup.py`. C'est un simple " "fichier Python, ressemblant dans la plupart des cas à :" #: extending/building.rst:73 msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::" msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::" #: extending/building.rst:77 msgid "" "will compile :file:`demo.c`, and produce an extension module named ``demo`` " "in the :file:`build` directory. Depending on the system, the module file " "will end up in a subdirectory :file:`build/lib.system`, and may have a name " "like :file:`demo.so` or :file:`demo.pyd`." msgstr "" "compilera :file:`demo.c`, et produira un module d'extension nommé ``demo`` " "dans le dossier :file:`build`. En fonction du système, le fichier du module " "peut se retrouver dans :file:`build/lib.system`, et son nom peut être :file:" "`demo.py` ou :file:`demo.pyd`." #: extending/building.rst:82 msgid "" "In the :file:`setup.py`, all execution is performed by calling the ``setup`` " "function. This takes a variable number of keyword arguments, of which the " "example above uses only a subset. Specifically, the example specifies meta-" "information to build packages, and it specifies the contents of the " "package. Normally, a package will contain additional modules, like Python " "source modules, documentation, subpackages, etc. Please refer to the " "distutils documentation in :ref:`distutils-index` to learn more about the " "features of distutils; this section explains building extension modules only." msgstr "" "Dans le fichier :file:`setup.py`, tout est exécuté en appelant la fonction " "``setup``. Elle prend un nombre variable d'arguments nommés, dont l'exemple " "précédent n'utilise qu'une partie. L'exemple précise des méta-informations " "pour construire les paquets, et définir le contenu du paquet. Normalement un " "paquet contient des modules additionnels, comme des modules sources, " "documentation, sous paquets, etc. Referez-vous à la documentation de " "*distutils* dans :ref:`distutils-index` pour en apprendre plus sur les " "fonctionnalités de *distutils*. Cette section n'explique que la construction " "de modules d'extension." #: extending/building.rst:91 msgid "" "It is common to pre-compute arguments to :func:`setup`, to better structure " "the driver script. In the example above, the ``ext_modules`` argument to :" "func:`~distutils.core.setup` is a list of extension modules, each of which " "is an instance of the :class:`~distutils.extension.Extension`. In the " "example, the instance defines an extension named ``demo`` which is build by " "compiling a single source file, :file:`demo.c`." msgstr "" "Il est classique de pré-calculer les arguments à la fonction :func:`setup`, " "pour plus de lisibilité. Dans l'exemple ci-dessus, l'argument " "``ext_modules`` à :func:`~distutils.core.setup` est une liste de modules " "d'extension, chacun est une instance de la classe :class:`~distutils." "extension.Extension`. Dans l'exemple, l'instance définit une extension " "nommée ``demo`` construite par la compilation d'un seul fichier source :file:" "`demo.c`." #: extending/building.rst:99 msgid "" "In many cases, building an extension is more complex, since additional " "preprocessor defines and libraries may be needed. This is demonstrated in " "the example below." msgstr "" "Dans la plupart des cas, construire une extension est plus complexe à cause " "des bibliothèques et définitions de préprocesseurs dont la compilation " "pourrait dépendre. C'est ce qu'on remarque dans l'exemple plus bas." #: extending/building.rst:127 msgid "" "In this example, :func:`~distutils.core.setup` is called with additional " "meta-information, which is recommended when distribution packages have to be " "built. For the extension itself, it specifies preprocessor defines, include " "directories, library directories, and libraries. Depending on the compiler, " "distutils passes this information in different ways to the compiler. For " "example, on Unix, this may result in the compilation commands ::" msgstr "" "Dans cet exemple, la fonction :func:`~distutils.core.setup` est appelée avec " "quelques autres méta-informations, ce qui est recommandé pour distribuer des " "paquets. En ce qui concerne l'extension, sont définis quelques macros " "préprocesseur, dossiers pour les en-têtes et bibliothèques. En fonction du " "compilateur, *distutils* peut donner ces informations de manière différente. " "Par exemple, sur Unix, ça peut ressembler aux commandes ::" #: extending/building.rst:139 msgid "" "These lines are for demonstration purposes only; distutils users should " "trust that distutils gets the invocations right." msgstr "" "Ces lignes ne sont qu'à titre d'exemple, les utilisateurs de *distutils* " "doivent avoir confiance en *distutils* qui fera les appels correctement." #: extending/building.rst:146 msgid "Distributing your extension modules" msgstr "Distribuer vos modules d'extension" #: extending/building.rst:148 msgid "" "When an extension has been successfully built, there are three ways to use " "it." msgstr "" "Lorsqu'une extension a été construite avec succès, il existe trois moyens de " "l'utiliser." #: extending/building.rst:150 msgid "" "End-users will typically want to install the module, they do so by running ::" msgstr "" "Typiquement, les utilisateurs vont vouloir installer le module, ils le font " "en exécutant ::" #: extending/building.rst:154 msgid "" "Module maintainers should produce source packages; to do so, they run ::" msgstr "" "Les mainteneurs de modules voudront produire des paquets source, pour ce " "faire ils exécuteront ::" #: extending/building.rst:158 msgid "" "In some cases, additional files need to be included in a source " "distribution; this is done through a :file:`MANIFEST.in` file; see :ref:" "`manifest` for details." msgstr "" "Dans certains cas, des fichiers supplémentaires doivent être inclus dans une " "distribution source : c'est possible via un fichier :file:`MANIFEST.in`, c." "f. :ref:`manifest`." #: extending/building.rst:161 msgid "" "If the source distribution has been built successfully, maintainers can also " "create binary distributions. Depending on the platform, one of the following " "commands can be used to do so. ::" msgstr "" "Si la distribution source a été construite avec succès, les mainteneurs " "peuvent aussi créer une distribution binaire. En fonction de la plateforme, " "une des commandes suivantes peut être utilisée. ::"