問題
- WSL2で
python3 get-pip.py
を走らせても反応がない -
sudo apt install python3-pip
で無事インストールさせるも、pip3 install xxx
が動かない -
pip3 install xxx --verbose
をしても、同じく何のアウトプットもない
解決方法
Windows ファイアウォールを一時的に無効化してみたら、通常通り動いたのでどうやらWSL2上でのPython3がブロックされているみたい。とりあえず、\\wsl$\Ubuntu\usr\bin
からPython3.8を見つけ、Windows ファイアウォールで許可するも結果は変わらず。
結局、WSL2のDNS設定を変えたら直った。
手順
1. /etc/resolv.conf
の自動生成を無効化する
/etc/wsl.conf
をsudoで開き(ない場合は作成)、以下に書き換える。
[network]
generateResolvConf = false
2. WSL2を再起動する
Powershellを開いてwsl --shutdown
。
3. /etc/resolv.conf
を書き換える
まずsudo rm /etc/resolv.conf
で今あるソフトリンクを消す。
新しく/etc/resolv.conf
を作成し、
nameserver x.x.x.x
に書き換える。x.x.x.x
の部分は自分のWindowsのDNSサーバに置き換える。
探し方はPowershellでipconfig /all
と打ち、
DNS Servers . . . . . . . . . . . : xxx.xxx.xx.x
の様な行を見つける。
4. もう一度WSL2を再起動する
2.と同じ手順。
参考
https://github.com/microsoft/WSL/issues/4020
https://superuser.com/questions/1533291/how-do-i-change-the-dns-settings-for-wsl2