😸
GCEのUbuntu 20.04でvenvがaptでインストールできなかった原因と回避策
発生した問題
多分また何度も思い出すのに時間かかりそうなので、ただの備忘録になります。
以下のコマンドでpoetryをインストール(python3しかデフォルトだと入っていなかったので、python3になっています)した後
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3
cloneしてきたプロジェクトの環境を以下のコマンドで作成しようとしました。
poetry install
すると、以下のエラーが出ました。
The virtual environment found in /home/hogehoge/.cache/pypoetry/virtualenvs/src-rpN5Qlbd-py3.8 seems to be broken.
Recreating virtualenv src-rpN5Qlbd-py3.8 in /home/hogehoge/.cache/pypoetry/virtualenvs/src-rpN5Qlbd-py3.8
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: ['/home/hogehoge/.cache/pypoetry/virtualenvs/src-rpN5Qlbd-py3.8/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']
言われた通りapt-get install python3-venv
のコマンドを実行してみると以下のエラーが出て、venvがインストールできませんでした。
$ apt-get install python3-venv
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package python3-venv is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'python3-venv' has no installation candidate
回避策
こちらに書いてある以下のコマンドを実行するとインストールできるようになりました。
sudo add-apt-repository universe
sudo apt update
ただ、universeが何なのか調べてみるとこちらを見た限り、無料でコミュニティでメンテナンスされているOSSのようなので、リポジトリが更新されていないことも考えられるので、本当は自分でビルドしたほうが良いのかもしれない?
参考文献
Discussion