Stiamo usando Python.Net per chiamare il codice CLR da Python e vice vera. Funziona piuttosto bene, ma ha alcuni inconvenienti, principalmente che scrivere codice CLR in Python è ... strano (questo vale anche per l'altro modo).
Quindi lo utilizziamo principalmente come interfaccia: abbiamo metodi di alto livello che possono essere chiamati e quali strutture di dati definite restituite - cerchiamo di evitare di creare un programma python completo nel codice C #. Ciò ha anche vantaggi in termini di testabillity.
Si noti che Python.Net viene aggiornato solo lentamente, il che può essere un problema se si desidera utilizzare la versione python più recente e più calda. D'altra parte: puoi usare TUTTI python, non solo il sottoinsieme IronPython.
Un'ultima parola di avvertimento: se chiami il codice CLR da Python prova ad evitare di passare gli oggetti CLR più in profondità nel tuo programma python - mentre Python.Net è una buona pubblicità che allontana alcune differenze, altre differenze arriveranno a morderti , come cercare di decapitare / annullare un oggetto CLR. Abbiamo trovato che scrivere un codice di conversione aiuta davvero a mitigare tali problemi.
Avviso 2: Esistono alcune eccezioni .Net che possono rallentare il processo Python. Se osservi arresti anomali, dai un'occhiata al gestore globale delle eccezioni .Net. Questo non è colpa né di python né di clr - solo che entrambi hanno idee leggermente diverse su come alcuni dovrebbero essere gestiti.
Ultimo ma non meno importante: in termini di scienza dei dati, F # è veramente buono e ha alcune librerie interessanti come link