WSL2でpipが動かなかった時の対処法
問題
- WSL2でpipをインストールしようと、
python3 get-pip.py
を走らせたが、反応がない
- 代わりに
sudo apt install python3-pip
で無事インストールするも、pip3 install xxx
も同じく反応がない
-
pip3 install xxx --verbose
などをやっても、同じく何のアウトプットもない
解決方法
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.と同じ手順。
5. 解決!
参考
https://github.com/microsoft/WSL/issues/4020
https://superuser.com/questions/1533291/how-do-i-change-the-dns-settings-for-wsl2
Author And Source
この問題について(WSL2でpipが動かなかった時の対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/siberowl/items/af053ea3ac8284f2feca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .