Ich verwende conda
, um eine Python 2.7-Umgebung einschließlich der R package zu erstellen. Wenn ich eine Python-Session in einer Konsole zu öffnen, kann ich überprüfen, ob R
in der Tat mit dem Popen Konstruktor installiert ist:Popen Subprozess funktioniert nicht in einem SublimeREPL?
$ python
>>> from subprocess import Popen, PIPE
>>> proc = Popen(["which", "R"], stdout=PIPE, stderr=PIPE)
>>> proc.wait()
0
wo die 0
bedeutet es installiert ist. Aber wenn ich die gleichen Befehle innerhalb einer Sublime Text 3 REPL unter der gleichen Python-Umgebung ausführen, bekomme ich eine 1
.
Warum ist das und wie kann ich es beheben?
In einer Python-Sitzung '' proc.communicate() '' zurück: '('/ home/gabriel/anaconda3/envs/asteca27/bin/R \ n', '')'. In einer REPL gibt es '('', '')' zurück. Also denke ich, dass es "R", das in der "anaconda3" -Umgebung installiert ist, nicht von der REPL erkennt, auch nicht mit "communicate()". – Gabriel
Es könnte sein, dass, wenn Sie es von Ihrem repl (was ist es, spyder, jupyter, sonst?), Dass es nicht auf stdout schreibt, sondern zurück zu was auch immer das repl ist, so dass es leer zurückkommt? Ich bin nicht sicher über diesen letzten Teil, um ehrlich zu sein. – Kelvin
Ich benutze Sublime Text 3. Danke trotzdem, 'communicate()' ist nützlich. – Gabriel