Bizzarre Problem beim Versuch, Rpy2 2.1.9 mit R 2.12.1 zu arbeiten, mit Python 2.6 unter Windows XP - Rpy kann die R.dll nicht finden?

8

Ich habe ein echtes Problem damit, Rpy2 mit meiner R-Installation zu spielen. Ich habe zuerst versucht, das rpy2 MSI-Paket zu installieren, und das schien nicht zu funktionieren. Als ich die empfohlenen Tests ausführte, gab es mir einen Fehler, der sagte, dass es die R.dll nicht finden konnte, weil das neue R installiert (Post 2.11) die DLLs in einen i386-Ordner installiert, wo rpy2 sie nicht finden kann Es sieht in den Ordner bin statt in den Ordner bin / i386.

Dann habe ich versucht, die Installation von Grund auf selbst zu erstellen, indem ich die Kommandozeilen-Tools (distutils) benutze, die in python enthalten sind. Dies hat nicht funktioniert, da setup.py behauptete, den Standort R_home nicht finden zu können. Aber ich habe herausgefunden, dass das Editieren einer Umgebungsvariablen (PATH) das rpy2-Setup anzeigt, wo die R-Installation zu finden ist. Ich machte dann ein paar Änderungen an der Umgebung, indem ich die Variable "R_home" hinzufügte, die auf das Verzeichnis bin / i386 zeigte, und einen neuen Eintrag unter der Variable PATH machte, der auf dieselbe Stelle zeigte.

Leider, als es den R-Pfad gefunden hat, habe ich stattdessen dieses Problem:

%Vor%

Also ging ich zurück zu versuchen, die vorgefertigte Installation zu verwenden und dachte, dass die neuen Änderungen an der Umgebung vielleicht funktionieren würden, aber dieses Problem hier bekommen hat

%Vor%

Das ist wirklich seltsam, weil R (wie jeder bei der eigenen Installation überprüfen kann) R.dll in "C: \ Programme \ R \ R-2.12.1 \ bin \ i386" installiert und ich habe es überprüft und verifiziert, dass es da drin ist, und ich habe rpy2 auf dieses Verzeichnis im Windows-Standard PATH hingewiesen! Ich weiß für eine Tatsache, dass rpy2 an der richtigen Stelle sucht, aber kann nicht verstehen, warum R.dll nicht sieht.

Warum kann rpy2 das nicht finden? Und weiß jemand einen Weg, um rpy2 mit R 2.12 arbeiten zu lassen? Vielleicht sollte ich die neuere Version rpy2 2.2.0 ausprobieren? Es ist noch in der Entwicklung, und 1.9 soll laut dieser R 2.12 verarbeiten können Website , also weiß ich nicht, was ich tun soll ...

Danke an alle, die helfen können ...

[EDIT] Ich habe diese Anleitung auch über hier aber sie geben denselben "DLL nicht finden" -Fehler zurück ... Es sei denn, Sie ändern die Umgebungsvariable "R_home" so, dass sie direkt auf das c / program files / R / R 2.12 -Verzeichnis zeigt, anstatt in das i386-Unterverzeichnis.

Wenn es an der richtigen Stelle zeigt, erhalten Sie diese Fehler zurück. Das sieht ein bisschen vielversprechender aus ... Aber es ist immer noch ziemlich schlecht!

%Vor%     
Kingdom For a Name 21.02.2011, 16:52
quelle

3 Antworten

19

Nachdem ich viele Stunden im Internet gesucht und viele verschiedene Dinge ausprobiert habe, unter anderem mit den gleichen Problemen wie oben, habe ich endlich Rpy2 auf meinem Windows 7 Computer arbeiten lassen!

Im Grunde genommen kam die entscheidende Hilfe von diesem Thread: Ссылка .

Zusammengefasst, dies waren die Schritte, um rpy2 unter Windows7 zu installieren:

  1. Installiere rpy2 von diesem Link: Ссылка
  2. Fügen Sie den Pfad zu R.dll zur Umgebungsvariable PATH hinzu (C: \ Programme \ R \ 2.12.1 \ bin \ i386 in meinem Fall)
  3. Füge eine Umgebungsvariable R_HOME hinzu (C: \ Programme \ R \ R-2.12.1 in meinem Fall)
  4. Fügen Sie eine Umgebungsvariable R_USER (einfach mein Benutzername in Windows)
  5. hinzu
  6. Starten Sie Ihre Python-IDE neu (ansonsten werden die Umgebungsvariablen nicht neu geladen!)
kadee 26.08.2012 13:09
quelle
4

RPy2 wird nicht unter Windows getestet. Sie können versuchen, eine ältere Version (2.0.8) mit einem Windows-Installer zu verwenden könnte Probleme mit neueren Versionen von R haben.

Der Autor verwendet kein Windows. Wenn Sie wissen, dass eine neuere Version unter Windows funktioniert, bin ich sicher, dass er Beiträge begrüßen würde.

    
Thomas K 21.02.2011 17:36
quelle
2

Ich bin mir nicht sicher, wo ich dies schreiben soll, da ich keine Kommentare abgeben kann (keine Reputationspunkte), aber ich finde, es sind nützliche Informationen zu diesem Problem. Der Grund für die erschwerende Fehlermeldung "Kann R.dll in ... nicht finden", selbst wenn Sie wissen, dass sich R.dll genau dort befindet, wo es heißt, ist, dass das Programm nicht wirklich in diesem Verzeichnis sucht. Ich denke, die relevante Aktion passiert in rpy2s Modul " init .py" in diesen Zeilen:

%Vor%

Wie Sie sehen, wird die Fehlermeldung immer sagen, dass sie in dem Verzeichnis sucht, das Sie als R_HOME festgelegt haben, aber es wird tatsächlich im Verzeichnis "R_HOME \ r_dir \ win_bindir" suchen. Wenn Sie also eine Meldung wie "R.dll in C: \ Programme \ R \ 2.12.1 \ bin \ i386" nicht finden können, suchen Sie nach einem Verzeichnis mit dem Namen C: \ Programme \ R \ R-2.12.1 \ bin \ i386 \ R-2.12.1 \ bin \ i386 \ oder so ähnlich.

Punkt 3 in Kadees Antwort behebt dies, indem der angegebene Pfad nur bis unmittelbar über die \ bin-Ebene belassen wird.

    
jimbo63 31.12.2013 00:08
quelle

Tags und Links