IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Déploiement/Installation Python Discussion :

Intérêt de setup.py


Sujet :

Déploiement/Installation Python

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Intérêt de setup.py
    Bonjour,

    Désirant deployer une application python (sous Linux puis sous Windows, plus tard), je me suis intéressé à la manière de faire en analysant certains packages existants (comme emesene, smolt, etc ...).
    J'ai remarqué que ces packages intègrent un script setup.py.

    Après une brève recherche sur le net, j'ai vu que ce script est issu du module distutils et est surtout utiliser pour deployer des modules python mais je me demande s'il n'est pas également utilisé pour deployer carrément des applications python ?
    Y a t'il un intérêt à utiliser ce script plutôt que "tout" faire via le SPEC d'un RPM ?

    Je ne me suis pas encore intéressé de près à pyexe pour deployer des applications python sous windows mais peut-être que setup.py est requis dans ce cas ?

    Pouvez-vous éclairer ma lanterne ?

    Merci.

  2. #2
    Membre habitué
    Homme Profil pro
    Vagabong étudiant en annalyse du signal.
    Inscrit en
    Avril 2019
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Vagabong étudiant en annalyse du signal.
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2019
    Messages : 123
    Points : 162
    Points
    162
    Par défaut question similaire
    Je n’apporte pas vraiment de réponse mais je viens plutôt compléter votre question.

    Je souhaite dans le même but déployer une application via ce fameux setup.py.

    Pour le moment il resemble à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    import setuptools
     
    with open("README.rst", "r", encoding="utf-8") as f:
        long_description = f.read()
     
    setuptools.setup(
        name="raisin",
        version="0.0.15",
        author="Robin RICHARD (robinechuca)",
        author_email="raisin@ecomail.fr",
        description="Simple parallel, distributed and cluster computing",
        long_description=long_description,
        long_description_content_type="text/x-rst",
        url="https://framagit.org/robinechuca/raisin",
        packages=setuptools.find_packages(),
        install_requires=["pycryptodomex", "cloudpickle", "unidecode"], # ces paquets serons installes d'office
        extras_require={
            "calculation": ["sympy", "giacpy", "numpy"],
            "tools": ["psutil>=5.1", "regex", "cloudpickle", "unidecode"],
            "graphical": ["tkinter", "matplotlib"],
            "security": ["pycryptodomex"]
            },
        classifiers=[
            "Development Status :: 3 - Alpha",
            "Intended Audience :: Developers",
            "Intended Audience :: Science/Research",
            "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
            "Natural Language :: English",
            "Natural Language :: French",
            "Operating System :: MacOS",
            "Operating System :: Microsoft :: Windows",
            "Operating System :: POSIX :: BSD",
            "Operating System :: POSIX :: Linux",
            "Programming Language :: Python :: 3.6",
            "Programming Language :: Python :: 3.7",
            "Programming Language :: Python :: 3.8",
            "Topic :: System :: Distributed Computing",
            "Topic :: System :: Clustering",
            "Topic :: Internet",
            "Topic :: Scientific/Engineering",
            "Topic :: Software Development",
            "Topic :: System :: Power (UPS)",
            ],
        keywords=["parallel", "distributed", "cluster computing"],
        python_requires=">=3.6",
        project_urls={
            "Source Repository": "https://framagit.org/robinechuca/raisin/-/tree/master/raisin",
            # "Bug Tracker": "https://github.com/engineerjoe440/ElectricPy/issues",
            # "Documentation": "https://engineerjoe440.github.io/ElectricPy/",
            # "Packaging tutorial": "https://packaging.python.org/tutorials/distributing-packages/",
            },
        include_package_data=True,
    )
    Pour le moment pour installer entièrement l'application il faut tapper:
    python3 setup.py install
    python3 -m raisin install

    La question c'est comment modifier le comportement de la commande 'python3 setup.py install' de façon à ce que ça fasse plus que simplement installer un module python?

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par Difool Voir le message
    s'il n'est pas également utilisé pour deployer carrément des applications python ?
    Une application Python, c'est aussi un tas de scripts/modules où certains seront des "points d'entrée" pour démarrer l'application.

    Citation Envoyé par Difool Voir le message
    Y a t'il un intérêt à utiliser ce script plutôt que "tout" faire via le SPEC d'un RPM ?
    C'est le mode de déploiement normal d'une application/bibliothèque Python. RPM, MSI, ... c'est du packaging pour un environnement système donné.

    Citation Envoyé par Difool Voir le message
    Je ne me suis pas encore intéressé de près à pyexe pour deployer des applications python sous windows mais peut-être que setup.py est requis dans ce cas ?
    pyexe, pyinstaller, cx_freeze,... permettent de déployer une application sans avoir à installer Python et les différentes bibliothèques utilisées: c'est un outil qui permet de gérer les dépendances. On peut "pousser" une application Python3 sur un environnement qui utilise Python2 (ou autres bibliothèques) sans prendre le risque de le casser.

    On peut aussi l'utiliser pour déployer une application Python chez des utilisateurs "finaux"... mais c'est assez limite compte tenu du boulot qu'il y a à faire "en plus".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    En ce qui me concerne, je n'utilise que cx_freeze et pyinstaller pour obtenir un exécutable qui emporte tout ce qui est nécessaire pour l'exécution (interpréteur Python, modules système, modules persos, ...). On peut donc diffuser l'exécutable par tous moyens (internet, clé USB, ...), et il pourra être exécuté sur un PC qui n'a pas Python d'installé.

    A noter que ces 2 logiciels sont multiplateformes (Windows, Linux et MacOS). Je les utilise le plus souvent sous Windows, mais j'ai déjà essayé cx_freeze sous Linux (Ubuntu), et ça marchait très bien. Attention: chaque exécutable sur un OS doit être préparé sur cet OS.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Citation Envoyé par robinechuca Voir le message
    La question c'est comment modifier le comportement de la commande 'python3 setup.py install' de façon à ce que ça fasse plus que simplement installer un module python?
    Que veux tu que ça fasse de plus ?

    Ton setup.py est typique du setup que l'on utilise pour uploader un package sur PyPI, est-ce ton intention ?

    Pour les packages debian et RPM je n'ai jamais utilisé de fichier setup.py, uniquement pour PyPI.

Discussions similaires

  1. [Inno Setup] Intérêts du flag dontverifychecksum
    Par kenny49 dans le forum Outils
    Réponses: 4
    Dernier message: 22/01/2009, 15h35
  2. Quel est l'intérêt des Services Web ??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 19
    Dernier message: 12/02/2003, 22h28
  3. [Concept] BD ou Gestion par fichier. Intérêt de la BD ?
    Par Cian dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/11/2002, 12h16
  4. [Technique] Intérêt des index
    Par ddams dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 04/11/2002, 15h11
  5. [VB6] [Install] Que se passe-t-il lors du setup?
    Par petit scarabée dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 28/10/2002, 08h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo