Devo installare automaticamente i moduli necessari?

1

Sto scrivendo un programma per mio nonno. Occasionalmente un aggiornamento richiede un nuovo modulo che non è installato sul suo computer. Non voglio dover installare manualmente nuovi moduli ogni volta, ma non è abbastanza esperto di tecnologia per capirlo da solo.

Per me è corretto controllare ImportErrors e installare un modulo dal messaggio di errore? In caso contrario, qual è l'alternativa?

    
posta spelchekr 01.07.2015 - 19:04
fonte

1 risposta

2

Questo è il lavoro del gestore pacchetti. Nel caso di Python: pip .

Se impacchettate la libreria che state costruendo e specificate le sue dipendenze, i vostri utenti (nonno), dovranno semplicemente eseguire:

$ pip install --upgrade <name-of-package>

per ottenere l'ultima versione rilasciata e tutte le sue dipendenze. Se non vuoi pubblicare il tuo codice online, pip può anche installare da fonti locali:

$ pip install zipped_package_emailed_to_grandpa.zip

oppure, se veramente hai bisogno di comprimere questo in un singolo script (Python 3.4+), puoi chiamare pip dall'interno:

#!/usr/bin/env python3

def main():
   ...

if __name__ == '__main__':
    import sys, subprocess
    dependencies = ['dep_1', 'dep_2']
    subprocess.call([sys.executable, '-m', 'pip', 'install'] + dependencies)
    import dep_1, dep_2
    main()

ma questo è decisamente raro.

    
risposta data 01.07.2015 - 20:56
fonte

Leggi altre domande sui tag