😸

GCEのUbuntu 20.04でvenvがaptでインストールできなかった原因と回避策

2020/11/19に公開

発生した問題

多分また何度も思い出すのに時間かかりそうなので、ただの備忘録になります。

以下のコマンドでpoetryをインストール(python3しかデフォルトだと入っていなかったので、python3になっています)した後

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3

poetryのインストールの参考URL

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のようなので、リポジトリが更新されていないことも考えられるので、本当は自分でビルドしたほうが良いのかもしれない?

参考文献

https://askubuntu.com/questions/1061486/unable-to-locate-package-python-pip-when-trying-to-install-from-fresh-18-04-in/1061488#1061488
https://help.ubuntu.com/community/Repositories/Ubunt

Discussion