【问题标题】:Using Jupyter behind a proxy在代理后面使用 Jupyter
【发布时间】:2016-08-06 09:31:54
【问题描述】:

是否有与 .condarc (anaconda 4.0.0) 类似的配置,允许将 Jupyter 配置为在本地计算机上的公司代理后面工作?

收到错误:

HTTPError: HTTP Error 407: Proxy Authentication Required

【问题讨论】:

  • 我通过设置HTTPS_PROXYHTTPS_PROXY 环境变量修复了这个问题,正确。我的 HTTPS 不正确,同样失败。

标签: python anaconda jupyter conda


【解决方案1】:

基于this link

您必须修改 Jupyter 笔记本服务器环境。在您的 Jupyter 笔记本服务器配置文件下创建一个名为 00-something.py 的文件并添加以下内容:

例如:

vi /.jupyter/profile_myserver/startup/00-startup.py

(或在 Windows 上,在您选择的编辑器中打开“C:/Users/您的用户名/.jupyter/profile_myserver/startup/00-startup.py”)

并添加

import sys,os,os.path
os.environ['HTTP_PROXY']="http://proxy.example.com:80"
os.environ['HTTPS_PROXY']="https://proxy.example.com:443"

你可以通过运行来确认环境变量

%env

在一个单元格中和输出

{'CLICOLOR': '1',
'GIT_PAGER': 'cat',
'HOME': '/home/jay',
'HTTP_PROXY': 'http://proxy.example.com:80',
..

下一次尝试

import requests
requests.get("http://google.com")

如果您得到响应 [200],则一切就绪。

【讨论】:

  • Windows 7 上的程序是什么?
  • 不确定,但我希望唯一的区别是您可以在哪里找到服务器配置文件以及您可能使用什么来编辑它。
  • https 的地址中缺少“s”字母?
  • 我在C:\Users\my_username\.ipython\profile_default\startup文件夹中添加了00-startup.py和上面的内容。问题已修复
  • 使用socks5代理怎么办?谢谢!
【解决方案2】:

更简单:只需将以下内容添加到您的笔记本中:

In [1]: import os
        os.environ['http_proxy'] = "http://user:passwd@host:port" 
        os.environ['https_proxy'] = "https://user:passwd@host:port" 

之后,请求将起作用OK=200,例如

In [2]: import requests
        requests.get("https://google.com")
Out[2]: <Response [200]>

【讨论】:

  • 更简单,但有点麻烦:您必须在您创建的每个笔记本中重复 + 如果您发布它,您不希望这些行出现在您的笔记本中
  • 随意连接来自保存密码的环境变量或配置文件中的字符串。
  • .condarc 文件中设置我的代理设置,这使我可以在公司代理后面使用 conda。但是,通过 JN(安装在 conda env 中)完成的任何请求都不起作用。将此添加到我的脚本中解决了这个问题。不知道为什么 JN 不采用 .condarc 文件的代理设置,但无论如何这解决了我的问题。谢谢
【解决方案3】:

对我来说更简单的解决方案是在我的代理配置中添加一个例外。我只是将地址 http://localhost:8888 放到我的例外列表中,它就起作用了。

【讨论】:

    【解决方案4】:

    改用小写变量,它对我有用:

    import sys,os,os.path
    os.environ['http_proxy']="http://user:passwd@host:port"
    os.environ['https_proxy']="http://user:passwd@host:port"
    

    然后使用以下命令检查您的环境变量:

    %env
    

    输出将是这样的:

    {'CLICOLOR': '1',
     '...'
     '...'
     'http_proxy': 'http://gunawan.marbun:xxxxxxxx@cache.itb.ac.id:8080'
     'https_proxy': 'https://gunawan.marbun:xxxxxxxx@cache.itb.ac.id:8080'
     'no_proxy': 'localhost,127.0.0.0/8,::1'}
    

    注意:由于我的声誉(req 50 并且我是新手),我无法发表评论,因此我提出了新的答案。

    【讨论】:

      【解决方案5】:

      基于这些Jupyter customization instructions

      1. 在您的主目录中创建目录.jupyter_config
      2. JUPYTER_CONFIG_DIR=~/.jupyter_config 行添加到您的bash/shell 配置文件(例如.bash_profile)。
      3. 使用以下代码将标题为 startup.py 的脚本添加到 ~/.jupyter_config,并使用您的特定代理信息进行自定义:
      import os
      os.environ['http_proxy']= "http://user:passwd@host:port"
      os.environ['https_proxy']= "https://user:passwd@host:port"
      os.environ['HTTP_PROXY']= os.environ['http_proxy']
      os.environ['HTTPS_PROXY']= os.environ['https_proxy']
      

      【讨论】:

        【解决方案6】:

        1.确保您已连接到 VPN 到办公室网络

        2。您可以在启动笔记本之前或在每个笔记本中设置代理

        A.开始之前

        从 jupyer 笔记本,启动终端(从右上角的选项 New)

        set HTTP_PROXY=http://fakeserver:fakeport
        set HTTPS_PROXY=http://fakeserver:fakeport
        
        jupyter notebook 
        

        (这将在新终端中启动笔记本,并设置可以使用 %env 检查的代理)

        B.在每个笔记本中

        import sys,os,os.path
        os.environ['HTTP_PROXY']="http://fakeserver:fakeport"
        os.environ['HTTPS_PROXY']="http://fakeserver:fakeport"
        

        3.在windows中,设置环境变量

        This PC (Rt Click) >> propertis>> Advanced System Setting >> Advanced >> Envioronmental variables>> click NEW to add 2 variables pointing HTTP_PROXY and HTTPS_PROXY to "http://fakeserver:fakeport"
        

        【讨论】:

          猜你喜欢
          • 2015-10-04
          • 2013-02-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-10
          • 2012-12-24
          • 2012-10-21
          相关资源
          最近更新 更多