helloworlds

not a noun, it's a verb

【Python】pyenv installでインストールできなかった話... →解決!!

今回はPythonのヴァージョン管理ツール、pyenvです。

前回の記事同様、環境としてはWindowsのWSL(Ubuntu)でゴニョゴニョしていました。

この記事もtipsのみで、記事内容は短いのであしからず!

まえおき

WindowsのWSL、Ubuntu18.04を使用していました。

Pythonがちょっと必要になったので、定番のpyenvをインストール!

インストール自体は問題なく、いつも通りpyenv install <version> と!

そしたら以下。

curl: (7) Failed to connect to www.python.org port 443: Connection refused
error: failed to download Python-3.7.6.tar.xz

あれーーー、プロキシの設定はしてあるはずなのに、なんでだろう~。。。

この前の記事でも少し紹介しました、WSLでの環境設定でプロキシサーバーがある場合、

ちょっと設定をしてあげる必要があったので、設定はしたはず。

o21o21.hatenablog.jp

ちょっとエラーをみてみる

まあ、それはそうと、まずエラーの確認から。

curl: (7) Failed to connect to www.python.org port 443: Connection refused
error: failed to download Python-3.7.6.tar.xz

叩いたコマンドは、pyenv install 3.7.6 --verbose

--verboseは、インストールするときの詳細を表示してくれるオプションです。

うん、pyenvはcurlを使っているのね。なんか通信が外に出られていないのねってこと。

curlの場合、プロキシ設定として、ホームディレクトリに.curlrcというファイルを作成し、

ファイルを以下のように記述します。

proxy-user = "(user_name):(pwd)"
proxy = "http://proxy.xxx.co.jp:(port)"

では、単純にcurlを叩いてみる。(この前通ることは確認したばかりなのになーー。。。)

結果、やはりcurlはちゃんと外に出られているようです。(レスポンスが返ってきました)

.basrc.bash_profileにもプロキシの設定はしてあります。

ええーーーなんでだーー

解決策

あーだこうだ考えたり、試したり、ググってみたところ、以下のコマンドで通りました。

$  https_proxy=http://proxy.xxx.co.jp:8080 pyenv install 3.7.6

なんか.curlrcに記述してあるproxyより、pyenvがcurlを呼んだときにhttpsが自動的に押し付けられるかんじになるのかな?

ちょっとまだ調べきれてないですが、完全にわかったらまた更新しようと思います。

取り急ぎ、以上