Rendre votre paquet portable

Principes d'ingénierie logicielle en Python

Adam Spannbauer

Machine Learning Engineer at Eastman

Étapes vers la portabilité

fichier setup.py

fichier requirements.txt

Principes d'ingénierie logicielle en Python

Structure de paquet portable

Structure du paquet

Principes d'ingénierie logicielle en Python

Contenu de requirements.txt

dans work_dir/requirements.txt

# Paquets/versions requis
matplotlib
numpy==1.15.4
pycodestyle>=2.4.0

avec le 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='An example package for 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

dans work_dir/requirements.txt

# Indiquer la source d'installation des exigences
--index-url https://pypi.python.org/simple/

# Paquets/versions requis
matplotlib
numpy==1.15.4
pycodestyle>=2.4.0

Documentation : install_requires vs requirements files

Principes d'ingénierie logicielle en Python

Installer votre paquet avec pip

datacamp@server:~/work_dir $ pip install .
Building wheels for collected packages: my-package
  Running setup.py bdist_wheel for my-package ... done
Successfully built my-package
Installing collected packages: my-package
Successfully installed my-package-0.0.1
Principes d'ingénierie logicielle en Python

Passons à la pratique !

Principes d'ingénierie logicielle en Python

Preparing Video For Download...