2016-05-10 27 views
6

Così chiamo un eseguibile esterno (Rscript.exe come parte di R portable) da Python subprocess.popen.Problemi di bizzarri strani con popen Python

  • Chiamato da python 32 bit, funziona.

  • Chiamato da python a 64 bit, R si lamenta che non riesce a trovare vari pacchetti, quindi qualcosa è diverso.

Non ci dovrebbe essere alcun reindirizzamento del file system in corso (il percorso di Rscript.exe non è in file di programma)

Questo potrebbe essere un problema di pitone, un problema R, o entrambi. Perché qualcosa si comporta in modo diverso a seconda della testimonianza del processo che ha chiamato il popen? Posso forzare una chiamata da python a 64 bit per sembrare una chiamata a 32 bit dal punto di vista di Rscript?

+4

È possibile inserire il codice e i messaggi di errore per favore? – wholevinski

+1

È su Windows? perché non usare R64? – rll

+4

Controllare il PERCORSO, la directory corrente e tutti i percorsi della libreria per le chiamate dai due pitoni. – mdurant

risposta

0

Quando si utilizza classe subprocess.Popen per sottoprogrammi o thread, esso crea un tubo a guscio o riga di comando per lo stesso e si può passare argomenti oggetto della classe subprocess.Popen come in forma di stringa. Questo comando viene eseguito nella shell e viene eseguito. Quindi l'errore in arrivo non è né un problema di Python, né un problema di R. Il problema esiste con le variabili di ambiente e il percorso del sistema. Potrebbe non aver salvato il percorso di ambiente per R, quindi non è in grado di ottenere l'Rscript.exe per l'esecuzione. E non esiste un sistema di reindirizzamento file/directory direttamente disponibile per la ricerca di cartelle/file per l'esecuzione.

Impostare la variabile del percorso di sistema per R e il problema si spera possa essere risolto

Problemi correlati