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

ハマりました。。
普段はProxy環境で使っている端末で、いざ違う環境で使うとプロキシを見てしまうということ
よくあると思います。
今回もOSの環境変数をなんとかすれば、動くだろうと思っていましたが、消してもなぜかプロキシを見に行ってしまう。
Cannot connect to proxy でタイムアウトエラーが治りませんでした

一個ずつ確認すると

まずは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を経由せずに正常にレスポンスが返ってきました。

最後に

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

广告
将在 10 秒后关闭
bannerAds