Creare uno script python che installare moduli Python ed eseguire alcuni comandi

voti
-1

Voglio creare un sottile involucro intorno a questa biblioteca https://github.com/jupyter-incubator/sparkmagic#installation

Come si può vedere nel link, la fase di installazione richiede

  1. l'installazione di alcuni pacchetti con il seme
  2. eseguire un comando del tipo jupyter enable ...ojupyter-kernelspec install
  3. file di configurazione personalizzata che voglio generare e posizionare nel posto giusto

Sto controllando quali opzioni devo fare l'installazione come automatico chiamando uno script. Finora ho avvicinò la creazione di uno script bash con tutti questi comandi. In questo modo si lavora con un semplice install.shma potrebbe avere problemi dal momento che non saprò che i binari di pitone da utilizzare. Se un utente vuole installare il lib per python2 o python3 non può avere questa scelta se non tocca la sceneggiatura.

Ho quindi cercato di usare setup.pye sovrascrivere il cmdclassdi inserire codice personalizzato

from setuptools import setup
from setuptools.command.develop import develop
from setuptools.command.install import install


class PostDevelopCommand(develop):
  Post-installation for development mode.
  def run(self):
    develop.run(self)
    print(do things)

class PostInstallCommand(install):
  Post-installation for installation mode.
  def run(self):
    install.run(self)
    print(do things)

setup(
  ...
  install_requires=['sparkmagic'],
  cmdclass={
    'develop': PostDevelopCommand,
    'install': PostInstallCommand,
},

...
)

ma le stampe personalizzate lavorato solo durante l'esecuzione python setup.py install, ma non perpip install

Vorrei rendere questo ultimo lavoro opzione, ma se questo non è il picchiettio diritto di fare questo tipo di cose, mi può suggerire quale strada da percorrere?

È pubblicato 10/10/2019 alle 00:40
fonte dall'utente
In altre lingue...                            


1 risposte

voti
0

Il problema non è con pip installdirettamente, ma con ruote . Progetti confezionati come ruota non possono avere installazione personalizzata passi. Si veda ad esempio questo discussione . Dal momento che pip preferisce lavorare con le ruote, la loro costruzione a livello locale, se necessario, i tuoi passi personalizzati non vengono eseguiti al momento dell'installazione. Probabilmente ci sono modi per prevenire il passaggio della ruota però.

Sapendo questo, probabilmente si dovrebbe seguire il consiglio da Jan Vlcinsky nel suo commento per la sua risposta a questa domanda: post script di installazione dopo l'installazione di una ruota .

  • Aggiungere un setuptools punto di ingresso della console al progetto (chiamiamolo myprojectconfigure). Forse si preferisce usare i distutils script dispongono invece.

  • Istruire gli utenti del vostro pacchetto per eseguire subito dopo l'installazione del pacchetto ( pip install myproject && myprojectconfigure).

  • Alla fine pensare che fornisce myprojectconfigure --uninstallpure.

Risposto il 10/10/2019 a 14:56
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more