Dans votre myproj
Répertoire racine pour ce projet, vous voulez déplacer module1.py
y module2.py
dans un répertoire nommé myproj
sous cela, et si vous souhaitez maintenir la compatibilité avec Python < 3.3, ajoutez une balise __init__
.py là-dedans.
├── myproj
│ ├── __init__.py
│ ├── module1.py
│ └── module2.py
└── setup.py
Vous pouvez également envisager d'utiliser setuptools
au lieu de seulement distutils. setuptools
fournissent beaucoup plus de méthodes d'aide et d'attributs supplémentaires qui rendent la configuration de ce fichier beaucoup plus facile. Voici le strict minimum setup.py
Je construirais pour le projet ci-dessus :
from setuptools import setup, find_packages
setup(name='myproj',
version='0.1',
description="My project",
author='me',
author_email='me@example.com',
packages=find_packages(),
)
En exécutant l'installation, vous devriez voir des lignes comme celles-ci :
copying build/lib.linux-x86_64-2.7/myproj/__init__.py -> build/bdist.linux-x86_64/egg/myproj
copying build/lib.linux-x86_64-2.7/myproj/module1.py -> build/bdist.linux-x86_64/egg/myproj
copying build/lib.linux-x86_64-2.7/myproj/module2.py -> build/bdist.linux-x86_64/egg/myproj
Cela signifie que le setup script a récupéré les fichiers sources requis. Lancez l'interpréteur python (de préférence en dehors de ce répertoire de projet) pour vous assurer que ces modules peuvent être importés (pas à cause de l'importation relative).
Par contre, si vous souhaitez fournir ces modules au niveau de la racine, vous devez absolument déclarer py_modules
explicitement.
Enfin, le Guide de l'utilisateur de Python Packaging est une bonne ressource pour les questions plus spécifiques que l'on peut se poser sur la construction de paquets python distribuables.