[Python] Empaquetez et distribuez vos propres modules

Qu'est-ce que c'est ça

Lors du développement en équipe, il existe des cas où vous souhaitez que d'autres personnes utilisent vos propres outils, ou vous souhaitez intégrer vos propres modules dans votre projet. Dans un tel cas, «l'emballage» est pratique.

J'écrirai plus tard comment héberger secrètement un package dans un référentiel privé.

(Une addition) Je suis désolé que cela puisse être

Préparation

Structure du projet

L'explication suivante sera écrite en supposant la structure suivante. Veuillez cracher la relation des exigences avec pip freeze. Le nom du projet est "uhouhoapp"

procédure

exemple de main.py


def main():
    print('HelloWorld')

Préparation de setup.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from setuptools import setup, find_packages


def _load_requires_from_file(filepath):
    return [pkg_name.rstrip('\r\n') for pkg_name in open(filepath).readlines()]


def _install_requires():
    requires = _load_requires_from_file('requirements.txt')
    return requires


def _test_requires():
    test_requires = _load_requires_from_file('test-requirements.txt')
    return test_requires


def _packages():
    return find_packages(
        exclude=[
            '*.tests',
            '*.tests.*',
            'tests.*',
            'tests',
            '*.yaml'
        ],
    )


if __name__ == '__main__':
    description = ''
    setup(
        name='uhouhoapp',
        version='1.0.0',
        description=description,
        author='UhoUho Inc.',
        author_email='[email protected]',
        classifiers=[
            'Programming Language :: Python :: 2',
            'Programming Language :: Python :: 2.7',
            'Development Status :: 3 - Alpha',
            'License :: Confidencial',
            'Intended Audience :: Developers',
            'Natural Language :: English',
            'Operating System :: POSIX'
        ],
        packages=_packages(),
        install_requires=_install_requires(),
        tests_require=_test_requires(),
        test_suite='nose.collector',
        include_package_data=True,
        zip_safe=False,
        entry_points="""
        [console_scripts]
        uhouhoapp = uhouhoapp.main:main
        """,
    )

Quand utiliser

Si vous appuyez sur la commande suivante, mon module sera enregistré.


$ pip install -e .
Obtaining file:///Users/hiroyuki/test22
Installing collected packages: uhouhoapp
  Running setup.py develop for uhouhoapp
Successfully installed uhouhoapp-1.0.0

Exécuter en tant que commande

Si vous souhaitez l'exécuter, procédez comme suit. Si vous êtes un bon commandant, vous pouvez vous débarrasser de la partie console_scripts de setup.py.

$ uhouhoapp
HelloWorld

Recommended Posts

[Python] Empaquetez et distribuez vos propres modules
Comment empaqueter et distribuer des scripts Python
Paquets et modules Python
Importez vos propres modules avec le développement Python de Grasshopper
Flux de création de votre propre package avec setup.py avec python
Apprenez à connaître les packages et les modules Python
Appelez votre propre module python à partir du package ROS
[Python] Créez votre propre bot LINE
[Python] journalisation dans votre propre module
A propos des modules Python Primer et des expressions conditionnelles
Cours de base Python (14 modules et packages)
[Python] Lorsque vous souhaitez importer et utiliser votre propre package dans le répertoire supérieur
Créez votre propre classe de structure graphique et son dessin avec python
Les modules et packages en Python sont des "espaces de noms"
Créez vos propres commandes Linux en Python
[LLDB] Créez votre propre commande avec Python
Installation de Python et gestion des packages avec pip
[Python] Enregistrez votre propre bibliothèque dans PyPI
Jusqu'à ce que vous installiez votre propre bibliothèque Python
Publiez votre propre bibliothèque Python sur Homebrew
Obtenez votre propre adresse IP en Python
Créez votre propre caméra virtuelle avec Python + OpenCV et appliquez des effets originaux
[Python] Implémentez votre propre classe de type liste à l'aide de collections.UserList
Développez et gonflez votre propre ensemble de données Deep Learning
Créez rapidement votre propre module avec setuptools (python)
python: utilisez votre propre classe pour numpy ndarray
Un script qui combine vos modules et binaires Python préférés en une seule couche Lambda
Mémo pour créer votre propre Box avec le Python de Pepper
Créez votre propre Big Data en Python pour validation
Prenez votre propre utilisation maximale de la mémoire sous Linux et Python
Créez votre propre stéréogramme aléatoire (RDS) en Python.
Essayez d'améliorer votre propre quiz d'introduction avec Python
Appelons votre propre bibliothèque C ++ avec Python (Préférences)
[Blender x Python] Créez votre propre fonction et résumé jusqu'à présent
Utilisez CASA Toolkit dans votre propre environnement Python
Obtenir les informations de localisation actuelles et l'agent utilisateur en Python
[Road to Intermediate Python] Définissez dans votre propre classe
Automatisez Chrome avec Python et Selenium sur votre Chromebook
Obtenez une compréhension abstraite des modules et des packages Python
Personnalisez Jupyter Notebook: modifiez l'arrière-plan et les icônes
[python] Compresser et décompresser
Liste des modules python
Itérateur et générateur Python
Notes de développement de package Python
Mémo du package de test Python
Intégration Vue-Cli et Python
Ruby, Python et carte
Mémo du package d'adresse IP Python
entrée et sortie python
Python et Ruby se séparent
Comparaison du gestionnaire de packages Python
Python asyncio et ContextVar
python> Lien> Package PyUserInput |
Jusqu'à ce que vous puissiez installer votre propre bibliothèque Python avec pip
Essayez de trier vos propres objets avec des files d'attente prioritaires en Python
Exécutez l'intelligence de votre propre bibliothèque python avec VScode.
Faites agir Python pour vous, puis vos yeux et votre cerveau ...