WSL の Python で venv による仮想環境の作成がエラーになる
仮想環境の作成に失敗
WSL の Python で仮想環境を作ろうとしたら以下のエラーが出ました。
$ python3 -m venv .venv The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the following command. apt-get install python3-venv You may need to use sudo with that command. After installing the python3-venv package, recreate your virtual environment. Failing command: ['/path/to/project/.venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']
エラーメッセージによると,仮想環境を作るためには python3-venv
をインストールする必要があるとのことです。
メッセージの指示に従い,下記のコマンドを実行してインストールしたところ,無事に仮想環境を作れるようになりました。
$ sudo apt install python3-venv
ensurepip が無効化されている
エラーメッセージにある通り,このエラーは Ubuntu で ensurepip
が無効化されているために起こっているようです。
グローバル環境に pip
が入っていると意図せずシステムを壊してしまう可能性があるため,Debian や Ubuntu では ensurepip
が無効化されているとのことです。
$ python3 -m ensurepip ensurepip is disabled in Debian/Ubuntu for the system python. Python modules for the system python are usually handled by dpkg and apt-get. apt-get install python-<module name> Install the python-pip package to use pip itself. Using pip together with the system python might have unexpected results for any system installed module, so use it on your own risk, or make sure to only use it in virtual environments.
python3-venv
をインストールしたことで仮想環境内では pip
が使えるようになったのですが,グローバル環境では pip
は使えないままです。
(.venv) $ pip3 --version pip 8.1.1 from /path/to/project/.venv/lib/python3.5/site-packages (python 3.5) $ pip3 --version The program 'pip3' is currently not installed. You can install it by typing: sudo apt install python3-pip
グローバル環境で pip
を使いたい場合は,python3-pip
をインストールすればよいようです。
以下のコマンドを実行すると pip3
が使えるようになりました。
$ sudo apt install python3-pip