Edited at

Proxy環境配下で使っている端末でJupyternotebookをProxy環境外で使った時にCannot connect to proxyが出てしまう問題を解決

More than 1 year has passed since last update.


結論 どこの環境変数なのか注意

ハマりました。。

普段はProxy環境で使っている端末で、いざ違う環境で使うとプロキシを見てしまうということ

よくあると思います。

今回もOSの環境変数をなんとかすれば、動くだろうと思っていましたが、消してもなぜかプロキシを見に行ってしまう。

Cannot connect to proxy でタイムアウトエラーが治りませんでした:persevere:


一個ずつ確認すると

まずはOSの環境変数ですが、もともとbash_profileにhttp_proxy,https_proxyという名前で環境変数を私は設定していました。今回はそれを消せばOKかと思っていました。

しかし、、治りません。


色々試してみると

①ipynbファイルで実装している内容をpyファイルにして実行

 普通に実行結果が出力されました。

 それでもjupyter からはNGとなります。

②ipynbファイルで実装している内容をIPythonで実行

 普通に実行結果が出力されました。

 それでもjupyter からはNGとなります。

③.condarcは使っていないので、とりあえず、jupyterの中に限定して

環境変数か何かなと思いつつも起動ブラウザを変更して実行

私はsafariをデフォルトで使っていたため、

jupyter notebook --browser='chrome'

chromeでjupyterを起動しました。やっぱり、それでも結果が変わりません。


jupyter上から環境変数を確認

ビルトインモジュールで環境変数を確認してみます。bash_profile上で削除されているため、

http_proxyとhttps_proxyは削除されているのが、以下、コマンドでわかります。


import os
for k, v in os.environ.items():
print("{key} : {value}".format(key=k, value=v))

jupyterのマジックコマンドで以下を確認すると、http_proxyとhttps_proxyが存在しています。


%env

これが削除できれば大丈夫そうだと思い、以下のようにして削除というか設定値を空にしました。


%env http_proxy =
%env https_proxy =

この設定により、無事、proxyを経由せずに正常にレスポンスが返ってきました。


最後に

意外とこの問題が記事になってなく、自分もまたこの状況になって忘れていたら嫌なので、

記事に残しました。