Rendre votre package portable

Principes d’ingénierie logicielle en Python

Adam Spannbauer

Machine Learning Engineer at Eastman

Étapes pour la portabilité

fichier setup.py

fichier requirements.txt

Principes d’ingénierie logicielle en Python

Structure d'un package portable

Structure du package

Principes d’ingénierie logicielle en Python

Contenu de requirements.txt

travail dans work_dir/requirements.txt

# Packages/versions nécessaires
matplotlib
numpy==1.15.4
pycodestyle>=2.4.0

travail avec terminal

datacamp@server:~$ pip install -r requirements.txt
Principes d’ingénierie logicielle en Python

Contenu de setup.py

from setuptools import setup

setup(name='my_package',
      version='0.0.1',
      description='Un package exemple pour DataCamp.',
      author='Adam Spannbauer',
      author_email='[email protected]',
      packages=['my_package'],
      install_requires=['matplotlib',
                        'numpy==1.15.4',
                        'pycodestyle>=2.4.0'])
Principes d’ingénierie logicielle en Python

install_requires vs requirements.txt

travail dans work_dir/requirements.txt

# Spécifier où installer les dépendances
--index-url https://pypi.python.org/simple/

# Packages/versions nécessaires
matplotlib
numpy==1.15.4
pycodestyle>=2.4.0

Documentation : install_requires vs requirements files

Principes d’ingénierie logicielle en Python

Installation de votre package avec pip

datacamp@server:~/work_dir $ pip install .
Construction des roues pour les packages collectés : my-package
  Exécution de setup.py bdist_wheel pour my-package ... terminé
Package my-package construit avec succès
Installation des packages collectés : my-package
my-package-0.0.1 installé avec succès
Principes d’ingénierie logicielle en Python

Passons à la pratique !

Principes d’ingénierie logicielle en Python

Preparing Video For Download...