Question

Je suis emballage un module Python, et je voudrais que les utilisateurs soient en mesure de construire le module avec des options personnalisées. Plus précisément, le paquet va faire un peu de magie supplémentaire si vous fournissez avec certains exécutables qu'il peut utiliser.

Idéalement, les utilisateurs courraient setup.py install ou setup.py install --magic-doer=/path/to/executable. S'ils ont utilisé la deuxième option, je définir une variable quelque part dans le code, et partir de là.

Est-ce possible avec setuptools Python? Si oui, comment puis-je faire?

Était-ce utile?

La solution

Il semble que vous pouvez lire ... cette .

Extrait de l'article:

  

Les commandes sont simple classe qui dérive de setuptools.Command, et définir des éléments minimums, qui sont:

description: describe the command
user_options: a list of options
initialize_options(): called at startup
finalize_options(): called at the end
run(): called to run the command
  

Le doc setuptools est encore vide sur les commandes sous-classement, mais une classe minimale ressemblera à ceci:

 class MyCommand(Command):
     """setuptools Command"""
     description = "run my command"
     user_options = tuple()
     def initialize_options(self):
         """init options"""
         pass

     def finalize_options(self):
         """finalize options"""
         pass

     def run(self):
         """runner"""
         XXX DO THE JOB HERE
  

La classe peut ensuite être crochet en tant que commande, en utilisant un point d'entrée dans son fichier setup.py:

 setup(
     # ...
     entry_points = {
     "distutils.commands": [
     "my_command = mypackage.some_module:MyCommand"]}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top