Proxy-Einstellung für R.


75

Ich habe Probleme, während ich R mit dem Internet in meinem Büro verbinde. Möglicherweise liegt dies an den LAN-Einstellungen. Ich habe fast alle Möglichkeiten ausprobiert, die mir im Web begegnen (siehe unten), aber immer noch vergebens.

  • Methode 1: Aufrufen von R mit --internet2

  • Methode 2: Aufrufen von R durch Festlegen ~/Rgui.exe http_proxy=http:/999.99.99.99:8080/ http_proxy_user=ask

  • Methode 3: Einstellung Setinternet2=TRUE

  • Methode 4:

    curl <- getCurlHandle()
    curlSetOpt(.opts = list(proxy = '999.99.99.99:8080'), curl = curl)
    Res <- getURL('http://www.cricinfo.com', curl = curl)
    

Bei allen Methoden kann ich Pakete direkt aus CRAN laden und Dateien mit dem Befehl download.file herunterladen

Aber mit getURL(RCurl), readHTMLTable(XML), htmlTreeParse(XML)Befehle Ich bin nicht in der Lage Web - Daten zu extrahieren. Ich bekomme einen ~<HEAD>\n<TITLE>Access Denied</TITLE>\n</HEAD>~Fehler.

Wie lege ich die LAN-Proxy-Einstellungen für das XML-Paket in R fest?


Wenn Sie alles versucht haben und es immer noch nicht funktioniert, sprechen Sie mit Ihrem Netzwerkadministrator. Möglicherweise müssen sie eine Firewall-Ausnahme einrichten, damit der Datenverkehr von Ihrem Computer durchgelassen werden kann.
Richie Cotton

Antworten:


48

Unter Mac OS habe ich hier die beste Lösung gefunden . Unter Berufung auf den Autor sind zwei einfache Schritte:

1) Öffnen Sie das Terminal und gehen Sie wie folgt vor:

export http_proxy=http://staff-proxy.ul.ie:8080
export HTTP_PROXY=http://staff-proxy.ul.ie:8080

2) Führen Sie R aus und gehen Sie wie folgt vor:

Sys.setenv(http_proxy="http://staff-proxy.ul.ie:8080")

Überprüfen Sie dies mit:

Sys.getenv("http_proxy")

Ich bin hinter dem Universitätsvertreter und diese Lösung hat perfekt funktioniert. Das Hauptproblem besteht darin, die Elemente in Terminal zu exportieren, bevor R ausgeführt wird, sowohl in Groß- als auch in Kleinbuchstaben.


2
Wenn Sie RStudio ausführen, öffnen Sie es nach Schritt 1 vom Terminal aus, möglicherweise über "open /Applications/RStudio.app".
Glenn

Hallo, wie kann ich es auf die Standardeinstellungen zurücksetzen? Ich habe Ihre Lösung ausprobiert und verwende jetzt WLAN ohne Proxy, kann aber kein Paket mehr in RStudio installieren. Ich habe es versucht Sys.setenv(http_proxy=""), außerdem führe ich Schritt 1 im Terminal erneut aus und setze ihn auf leere Zeichenfolge "". Überprüfen Sie es noch einmal und es kehrt zurück "", kann aber immer noch nicht installiert werden. Ich kann zwar ein Paket im Terminal installieren, aber nicht mehr in RStudio.
Al-Ahmadgaid Asaad

2
@ Al-AhmadgaidAsaad Seltsam, das Verhalten weist auf das Problem auf der Rstudio-Seite hin, aber ich denke, Sie sollten diese Proxy-Änderungen verlieren, wenn Sie Rstudio beenden, ohne die Sitzung zu speichern. Hast du das versucht? Ansonsten bin ich mir nicht sicher ...
Geek On Acid

1
Ich habe getan, was Sie vorgeschlagen haben, und alles aus meinem Arbeitsbereich entfernt. Und jetzt funktioniert es! Vielen Dank!
Al-Ahmadgaid Asaad

1
Hallo @GeekOnAcid, es ist auch möglich, den Code der zweiten Option in die Datei ~ / .Rprofile auf Mac und Linux einzufügen, die beim Starten der Sitzung geladen wird.
dmeu

23

Das Problem liegt in Ihren Lockenoptionen - das RCurlPaket scheint nicht zu verwenden internet2.dll. Sie müssen den Port separat angeben und müssen wahrscheinlich die Anmeldedaten Ihres Benutzers als Netzwerkanmeldeinformationen angeben, z.

opts <- list(
  proxy         = "999.999.999.999", 
  proxyusername = "mydomain\\myusername", 
  proxypassword = "mypassword", 
  proxyport     = 8080
)
getURL("http://stackoverflow.com", .opts = opts)

Denken Sie daran, Backslashes in Ihrem Passwort zu vermeiden. Möglicherweise müssen Sie die URL auch in einen Aufruf von einschließen curlEscape.


1
Wenn die angegebenen Optionen global festgelegt curlSetOpt(.opts=opts)sind, werden diese auch für andere Verbindungen verwendet, z. B. für Verbindungen aus dem XMLPaket, z. B.: htmlTreeParse()oder wie erzwinge ich die Verwendung des Proxys? Vielen Dank!
Seb

Ich habe ähnliche Situationen. Ich habe einen Proxy wie diesen (IP-maskiert) https: // domain \ user: pass@172.122.37.15: 8080. Ich möchte so konfigurieren, dass alle mit dem Internet verbundenen Vorgänge diesen Proxy verwenden. Irgendein Hinweis?
Indranil Gayen

19

Für RStudio müssen Sie nur Folgendes tun:

Öffnen Sie zunächst RStudio wie immer und wählen Sie aus dem oberen Menü:

Tools - Globale Optionen - Pakete

Deaktivieren Sie die Option: Internet Explorer-Bibliothek / Proxy für HTTP verwenden

Und dann das Rstudio schließen, außerdem müssen Sie:

  1. Suchen Sie die Datei (.Renviron) auf Ihrem Computer. Höchstwahrscheinlich finden Sie sie hier: C: \ Benutzer \ Ihr Benutzername \ Dokumente. Beachten Sie, dass Sie es erstellen können, wenn es nicht vorhanden ist, indem Sie diesen Befehl in RStudio schreiben:

    file.edit('~/.Renviron')
    
  2. Fügen Sie diese beiden Zeilen zu den Initialen der Datei hinzu:

    options(internet.info = 0)
    
    http_proxy="http://user_id:password@your_proxy:your_port"
    

Und das ist es..??!!!


11

Ich hatte das gleiche Problem in meinem Büro und habe es gelöst, indem ich den Proxy am Ziel der R-Verknüpfung hinzugefügt habe. Klicken Sie auf die rechte Schaltfläche des R-Symbols, klicken Sie auf Einstellungen und fügen Sie im Zielfeld hinzu

"C:\Program Files\R\your_R_version\bin\Rgui.exe" http_proxy=http://user_id:passwod@your_proxy:your_port/

Stellen Sie sicher, dass Sie das Verzeichnis ablegen, in dem Sie das R-Programm installiert haben. Das ist für mich in Ordnung. Ich hoffe das hilft.


7

Dieser Beitrag bezieht sich auf R-Proxy-Probleme unter * nix. Sie sollten wissen, dass R über viele Bibliotheken / Methoden verfügt, um Daten über das Internet abzurufen.

Für 'curl', 'libcurl', 'wget' usw. gehen Sie einfach wie folgt vor:

  1. Öffnen Sie ein Terminal. Geben Sie den folgenden Befehl ein:

    sudo gedit /etc/R/Renviron.site
    
  2. Geben Sie die folgenden Zeilen ein:

    http_proxy='http://username:password@abc.com:port/'
    https_proxy='https://username:password@xyz.com:port/'
    

    Ersetzen Sie username, password, abc.com, xyz.comund portmit diesen spezifischen Einstellungen zu Ihrem Netzwerk.

  3. Beenden Sie R und starten Sie erneut.

Dies sollte Ihr Problem mit den Methoden 'libcurl' und 'curl' lösen. Ich habe es jedoch nicht mit 'httr' versucht. Eine Möglichkeit, dies mit 'httr' nur für diese Sitzung zu tun, ist wie folgt:

library(httr)
set_config(use_proxy(url="abc.com",port=8080, username="username", password="password"))

Sie müssen die für Ihre N / W spezifischen Einstellungen in relevanten Feldern ersetzen.



6

Wenn Sie R über ein Desktopsymbol starten, können Sie der Zielzeile das --internetFlag hinzufügen (Rechtsklick -> Eigenschaften), z

"C:\Program Files\R\R-2.8.1\bin\Rgui.exe" --internet2 

6

Inspiriert von allen Antworten im Internet habe ich endlich die Lösung gefunden, um den Proxy für R und Rstudio richtig zu konfigurieren.

Es sind mehrere Schritte zu befolgen, vielleicht sind einige der Schritte nutzlos, aber die Kombination funktioniert!

  1. Fügen Sie Umgebungsvariablen http_proxyund https_proxyProxy-Details hinzu.

    variable name: http_proxy
    variable value: https://user_id:password@your_proxy:your_port/
    
    variable name: https_proxy
    variable value: https:// user_id:password@your_proxy:your_port
    
  2. Wenn Sie R über ein Desktopsymbol starten, können Sie das --internetFlag zur Zielzeile hinzufügen (Rechtsklick -> Eigenschaften).

    z.B"C:\Program Files\R\R-2.8.1\bin\Rgui.exe" --internet2

  3. Für RStudio müssen Sie nur Folgendes tun:

    Öffnen Sie zunächst RStudio wie immer und wählen Sie aus dem oberen Menü:

    Tools-Global Options-Pakete

    Deaktivieren Sie die Option: Internet Explorer-Bibliothek / Proxy für HTTP verwenden

  4. Suchen Sie die Datei ( .Renviron) auf Ihrem Computer. Wahrscheinlich finden Sie sie hier : C:\Users\your user name\Documents.

    Beachten Sie Folgendes: Wenn es nicht vorhanden ist, können Sie es erstellen, indem Sie diesen Befehl in R schreiben:

    file.edit('~/.Renviron')
    

    Fügen Sie dann diese sechs Zeilen zu den Initialen der Datei hinzu:

    options(internet.info = 0)
    
    http_proxy = https:// user_id:password@your_proxy:your_port
    
    http_proxy_user = user_id:password
    
    https_proxy = https:// user_id:password0@your_proxy:your_port
    
    https_proxy_user = user_id:password
    
    ftp_proxy = user_id:password@your_proxy:your_port
    
  5. Starten Sie R neu. Geben Sie die folgenden Befehle in R ein, um sicherzustellen, dass die obige Konfiguration ordnungsgemäß funktioniert:

    Sys.getenv("http_proxy")
    
    Sys.getenv("http_proxy_user")
    
    Sys.getenv("https_proxy")
    
    Sys.getenv("https_proxy_user")
    
    Sys.getenv("ftp_proxy")
    
  6. Jetzt können Sie die Pakete mit dem folgenden Befehl installieren:

    install.packages("mlr",method="libcurl")
    

    Es ist wichtig hinzuzufügen method="libcurl", sonst funktioniert es nicht.


Das hat bei mir nicht genau funktioniert. Was DID funktionierte, war Folgendes: Sys.setenv ("http_proxy" = "proxy.usps.gov:8080"). Beachten Sie, dass es weder einen Doppelpunkt-Backslash noch ein Leerzeichen oder einen Benutzernamen gibt.
Boyce Byerly

1

Der einfachste Weg, um alles in RStudio zum Laufen zu bringen Windows 10:

Öffnen Sie den Internet Explorer und wählen Sie Internet Options:

Geben Sie hier die Bildbeschreibung ein


Öffnen Sie den Editor für Umgebungsvariablen:

Geben Sie hier die Bildbeschreibung ein


Fügen Sie eine Variable HTTP_PROXY in der folgenden Form hinzu:

HTTP_PROXY=http://username:password@localhost:port/

Beispiel:

HTTP_PROXY=http://John:JohnPassword@localhost:8080/    

Geben Sie hier die Bildbeschreibung ein


RStudio sollte funktionieren:

Geben Sie hier die Bildbeschreibung ein


Gibt es eine einfache Möglichkeit, für die Rstudio-Proxy-Einstellung zwischen Heim und Büro zu wechseln? Sowohl für Windows als auch für Mac?
user5249203

0

Ich habe all dies und auch die Lösungen mit netsh, winhttp usw. ausprobiert. Die Antwort von Geek On Acid hat mir geholfen, Pakete vom Server herunterzuladen, aber keine dieser Lösungen hat für die Verwendung des Pakets funktioniert, das ich ausführen wollte (twitteR-Paket).

Die beste Lösung ist die Verwendung einer Software, mit der Sie den systemweiten Proxy konfigurieren können.

FreeCap (kostenlos) und Proxifier (Testversion) haben in meiner Firma perfekt für mich funktioniert.

Beachten Sie, dass Sie die Proxy-Einstellungen aus Ihrem Browser und allen anderen Apps entfernen müssen, die Sie für die Verwendung von Proxy konfiguriert haben, da diese Tools einen systemweiten Proxy für den gesamten Netzwerkverkehr von Ihrem Computer bereitstellen.


-2

Meine Lösung unter Windows 7 (32bit). R Version 3.0.2

Sys.setenv(http_proxy="http://proxy.*_add_your_proxy_here_*:8080")

setInternt2

updateR(2)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.