Ho una funzione "email di allarme" all'interno di un modulo python. Voglio essere in grado di chiamare questa funzione da uno script bash. So che puoi chiamare un modulo usando 'python' nello script, ma non lo sono se puoi o come chiameresti una funzione specifica all'interno del modulo.Chiamare una funzione python da uno script bash
risposta
python -c'import themodule; themodule.thefunction("boo!")'
È possibile utilizzare l'opzione -c
:
python -c "import random; print random.uniform(0, 1)"
Modifica di cui hai bisogno.
Per chiamare una funzione specifica in un modulo, assicurare che il modulo ha la seguente:
if __name__ == "__main__":
the_function_to_call()
allora si può semplicemente fare questo nello script di shell.
python module.py
O
python -m module
A seconda o meno il modulo del sul PYTHONPATH
.
Questo funzionerebbe solo se non avevi già un main o se avessi già un main che puntava alla funzione di cui hai bisogno. Nel mio caso c'è già un main e punta a un'altra funzione nel modulo quindi questa non era un'opzione. – Daniel
@Daniel: Questa non è una limitazione, è così che vanno le cose di design. Se hai già un 'main' e fa la cosa sbagliata, l'hai progettato male. –
@ S.Lott: non è stato progettato in modo errato. Il metodo da solo fa esattamente ciò che deve fare. È un limite perché è un modulo non una classe che significa che è un raggruppamento di funzioni simili. I punti principali di quello che viene in genere chiamato, ma in questo caso ho bisogno di iniziare con una funzione non tipica, quindi la chiamata diretta. – Daniel
- 1. Chiamare una funzione Python da uno script di shell
- 2. Come posso chiamare uno script python da uno script python
- 3. Verificare se esiste una funzione da uno script bash
- 4. Chiamare una funzione C++ tramite uno script Python
- 5. Esegui uno script bash da uno script R
- 6. incorporare brevi script python all'interno di uno script bash
- 7. come disattivare virtualenv da uno script bash
- 8. Chiamare una funzione DLL da Python
- 9. Come ssh da uno script bash?
- 10. Gradle: come posso chiamare una "def" da uno script importato?
- 11. Come eseguire uno script .sql da bash
- 12. Bash - Come chiamare una funzione dichiarata in una shell genitore?
- 13. javax script come chiamare una funzione in JavaScript da Java
- 14. Come uscire da una funzione di script Bash originario
- 15. Come uscire da una funzione in bash
- 16. AutoHotKey: chiamare uno script da un altro script
- 17. Fool python's os.isatty da uno script di bash
- 18. Come attivare virtualenv in uno script Bash
- 19. Terminare uno script python da un altro script python
- 20. Chiamata funzione C in script Bash
- 21. Come si esegue SQL da uno script bash?
- 22. chiamare rsync da python subprocess.call
- 23. Chiamare script Python in Meteor
- 24. Leggi le variabili Bash in uno script Python
- 25. Come chiamare una funzione java da python/numpy?
- 26. Chiamare uno script python da riga di comando senza digitare "python" prima
- 27. Invocare scons da uno script Python
- 28. Passare l'array python allo script bash (e passare la variabile bash alla funzione python)
- 29. Output JSON da script Bash
- 30. esecuzione di uno script Python da PHP
E se volessi passare una stringa alla funzione python? o semplicemente per stampare ciao? 'python -c 'print (" ciao ")" non funziona. – mango
@mango - Errato: gli argomenti funzionano. Ho copiato e incollato il tuo esempio, infatti, e poi testato di nuovo usando sia 'python3' che 'python2'. Potresti avere un problema diverso. –
Cosa succede se il modulo python si trova in un'altra directory? – Chaos