2017-06-16 1 views
0

Kann die dynamische Konfiguration in setup.py verwendet werden?python setuptools Installation mit dynamischer Konfiguration in setup.py

Ich habe eine Python-App, die eine Sammlung von Skripts ist, um Anfragen an eine Backend-API zu stellen. Ich möchte die Skripte dynamisch anpassen, die installiert werden, möglicherweise indem Sie ein Flag an den pip install-Befehl übergeben.

Ein Beispiel setup.py

from setuptools import setup, find_packages 
setup(
    name='my-app', 
    version='0.0.1', 
    packages=find_packages(), 
    scripts=['bin/do_stuff', 
      'bin/do_other_stuff' 
    ], 
) 

Ich möchte dynamisch den Inhalt von ‚Skripte‘ ändern, zusätzliche Pfade hinzuzufügen, basierend auf einer Fahne installieren.

Ist das möglich?

Antwort

1

pip ermöglicht es, Nicht-Standard-Parameter an setup.py über --install-option zu übergeben, aber Sie müssen den Parameter von sys.argv entfernen, bevor Sie setup() aufrufen. So können Sie am besten ist, werden zusätzliche Informationen über Variablen Umgebung weitergeben müssen:

MY_EXTRA_INFO=add_script pip install 

die var in setup.py Get:

if 'MY_EXTRA_INFO' in os.environ: 
    add_scripts = ['bin/add_script'] 
else: 
    add_scripts = [] 

setup(
    scripts=['bin/do_stuff', 
      'bin/do_other_stuff' 
    ] + add_scripts, 
) 
+0

Großartig, danke - und wie kann ich den Zustand 'pip install' passieren –

+0

Ich erweiterte die Antwort. – phd

Verwandte Themen