2014-09-24 9 views
7

Ich versuche RTools zu installieren, so dass ich ein anderes Paket installieren kann (Google causalimpact) und den Prozess hat gezeigt, ich habe ein Problem mit meiner Pfad-Umgebung für R.R Ausführen von cmd in Fenstern

Haupt habe Ausgabe

Ich kann R nicht aus dem Cmd-Fenster ausführen.

Das erwartete Verhalten ist unter dem Ausgang und gibt > prompt:

R version 3.1.1 (blah blah) 

... 

Type 'demo()' for some demos, 'help()' for on-line help, or 
'help.start()' for an HTML browser interface to help. 
Type 'q()' to quit R. 

jedoch das tatsächliche Ergebnis ist:

'C:\Program' is not recognized as an internal or external command, 
operable program or batch file. 

Zusatzinfo

ich aber Rcmd laufen kann und Rgui (alles außer R) von cmd ohne Fehler.

Where R druckt Ausgabe C:\Program Files\R\R-3.1.1\bin\x64\R.exe

Where Rcmd druckt Ausgabe C:\Program Files\R\R-3.1.1\bin\x64\Rcmd.exe

Where Rgui druckt Ausgabe C:\Program Files\R\R-3.1.1\bin\x64\Rgui.exe

Rückkehr die gleichen Pfade zu ihren jeweiligen exe-Dateien verweisen. Diese

ist eindeutig ein Problem mit meinen globalen Umwelt Pfaden, aber ich kann nicht sehen, warum es zu diesem Fehler würde

Die Wege aussehen (der R-Pfad in der letzten Zeile):

 c:\Rtools\bin  
    c:\Rtools\gcc-4.6.3\bin  
    C:\RBuildTools\3.1\bin 
    C:\RBuildTools\3.1\gcc-4.6.3\bin 
    c:\Rtools\bin 
    c:\Rtools\gcc-4.6.3\bin 
    C:\Python27\ 
    C:\Python34\  
    C:\Python34\Scripts  
    C:\Program Files (x86)\Intel\iCLS Client\ 
    C:\Program Files\Intel\iCLS Client\ 
    C:\windows\system32 
    C:\windows 
    C:\windows\System32\Wbem  
    C:\windows\System32\WindowsPowerShell\v1.0\  
    C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86 
    C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64 
    C:\Program Files\Intel\Intel(R) Management Engine Components\DAL  
    C:\Program Files\Intel\Intel(R) Management Engine Components\IPT  
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL 
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT  
    C:\Program Files (x86)\QuickTime\QTSystem\ 
    c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\  
    c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\  
    c:\Program Files\Microsoft SQL Server\100\Tools\Binn\ 
    c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\ 
    C:\strawberry\c\bin 
    C:\strawberry\perl\site\bin 
    C:\strawberry\perl\bin  
    C:\Program Files\MiKTeX 2.9\miktex\bin\x64\  
    C:\Program Files\MiKTeX 2.9\miktex\bin\x64\ 
    C:\Program Files\R\R-3.1.1\bin\x64 

Ich kann Python und Perl davon abhalten, entweder den Namen in das cmd-Fenster einzugeben, und da R auf die gleiche Weise gezeigt wird, kann ich den obigen Fehler nicht verstehen.

Wenn jemand irgendwelche Vorschläge, wie kann ich diesen Fehler beheben kann wäre ich sehr dankbar.

Ich habe gebeten, nicht eine Frage dieser Art hier vor so jede Bearbeitung/Zeiger zu sehr geschätzt.

Der rohe Pfad:

PATH=C:\Program Files\R\R-3.1.1\bin\x64;C:\Program Files\R\R-3.1.1\bin\x64;c:\Rt 
ools\bin;c:\Rtools\gcc-4.6.3\bin;C:\RBuildTools\3.1\bin;C:\RBuildTools\3.1\gcc-4 
.6.3\bin;c:\Rtools\bin;c:\Rtools\gcc-4.6.3\bin;C:\Python27\;C:\Python34\;C:\Pyth 
on34\Scripts;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iC 
LS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\Sy 
stem32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x 
86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program Files\Intel\In 
tel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Manageme 
nt Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine 
Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Componen 
ts\IPT;C:\Program Files (x86)\QuickTime\QTSystem\;c:\Program Files (x86)\Microso 
ft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microso 
ft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Bi 
nn\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\strawberry\c\bi 
n;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\Program Files\MiKTeX 2.9 
\miktex\bin\x64\;C:\Program Files\MiKTeX 2.9\miktex\bin\x64\;C:\Users\Tariq.Muma 
n\AppData\Local\Pandoc\ 
+1

Haben Sie sich http://stackoverflow.com/questions/18306362/run-rs-script-from-command-line angesehen? Können Sie erklären, wie sich Ihre Frage von diesem Thema unterscheidet? – JustinJDavies

+1

@JustinJDavies Dieser Typ versucht, ein Skript in cmd auszuführen, ich denke, ich muss einen Interpreter innerhalb des Cmd-Fensters öffnen, indem Sie "R" in den cmd eingeben, indem Sie "Python" oder "Perl" in den Cmd eingeben. Die andere Frage ist auch in Linux richtig? – user124123

+0

@JustinJDavies So weit mein Verständnis ist, ist das, wie dieses andere Paket, das ich versuche zu installieren, in Schwierigkeiten gerät. – user124123

Antwort

7

Versuchen Sie, Ihren PATH-Variable

zu PATH=C:\Progra~1\R\R-3.1.1\bin\x64;... Einstellung Es scheint sehr wahrscheinlich, dass irgendwie das System in Program Files als abschließendem Zeichen in dem Pfad das Leerzeichen wird das Parsen. Das Anpassen der Definition wie oben sollte dies unmöglich machen.

+1

Antwort inspiriert von Inhalt in Antworten auf http://StackOverflow.com/Questions/17845809/C-Program-is-Not-recognized-Forror – JustinJDavies

+0

Das war, was ich zunächst auch dachte, aber wenn das der Fall wäre, dann würde weder Rcmd noch RGui Arbeit. – user124123

+0

Haben Sie es versucht? –

1

Je nachdem, wie Sie Ihre PATH-Variable setzen Sie könnten in die 1024 Zeichenbegrenzung ausgeführt werden. Ich habe versucht, es herunter zu schneiden und schaffte es, es auf 1152 Zeichen zu entfernen, die lange Ordnernamen und nachfolgende \ Zeichen entfernen. Sie sollten in Erwägung ziehen, dies zu bereinigen und entweder nicht verwendete Pfade zu entfernen oder einige Aliasnamen zu verwenden, um Pfade der Deklaration zu gruppieren.

Ein direkter Ansatz wäre, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment zu editieren und den Wert PATH direkt zu bearbeiten (dann Neustart, um den neuen Wert zu aktivieren).

Beachten Sie jedoch, dass Sie zwar einen sehr langen Pfad eingeben können (bis zur maximalen Umgebungsvariablenlänge; 2.048 oder 32.768 Bytes je nach Quelle), aber nicht alle Software kann sie lesen und korrekt verarbeiten zu lang.

+0

Inspiriert von http://superuser.com/questions/387619/overcoming-the-1024-character-limit-with-setx – JustinJDavies

+0

Überprüfen Sie dies, aber es ist nicht das Problem. – user124123

7

Dies geschieht wegen des Platzes. CMD verstehen: ausführen "C: \ Program" mit Argument "Files \ R \ 3.1.1 \ bin \ x64 \ R.exe".

Sie sollen die gesamte Zeichenfolge zitieren:

"C:\Program Files\R\R-3.1.1\bin\x64\R.exe" 

... Ein Trick ist, die exec-Datei in Ihrem Befehlsfenster aus dem Windows-Explorer per Drag & Drop, Ihr wird die richtige Zeichenfolge erhalten zu verwenden.

+0

Ich habe das versucht, aber immer noch den gleichen Fehler. – user124123

0

Es ist wirklich einfach. Genau wie wie Sie JDK-Pfad-Variable für Java, setzen Sie R Pfad wie:

Path = "C: \ Programme \ R \ R-3.4.2 \ bin \"

im Edit-Systemumgebung Variablen in der Systemsteuerung.
Überprüfen Sie, ob es funktioniert!

Verwandte Themen