1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ubuntu20.04でPython3.9→3.10のアップデートに失敗する

Last updated at Posted at 2023-06-21

TL;DR

  • sudo add-apt-repository ppa:deadsnakes/ppaModuleNotFoundError: No module named 'apt_pkg'で失敗する人は/usr/bin/python, /usr/bin/python3のシンボリックリンクを書き換えていないか、aliasを張っていないか確認、元に戻すことで解決するかも

現象の前提

  • Ubuntu20.04 on Windows10/WSL2
  • python3.83.9へのアップデート済み
# sudo apt update
# sudo apt install python3.9

現象

3.93.10にしようとしてリポジトリを追加しようとすると以下のエラーが発生

# sudo add-apt-repository ppa:deadsnakes/ppa
Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 12, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 28, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

原因は簡単で、python3.9にしたときに、pythonだけで起動してほしくて

$ sudo rm /usr/bin/python3
$ ln -s /usr/bin/python3.9 /usr/bin/python3

と勝手にシンボリックリンクを書き直していたからです。add-apt-repositoryが参照しているpython3の向き先が変わってしまいました。

/usr/bin/*はよほどのことがなければいじるな、という当たり前の原因でした。alias python /usr/bin/python3.9のような設定をしている人も同様の現象が起こるかもです。

シンボリックリンクを

$ sudo rm /usr/bin/python3
$ ln -s /usr/bin/python3.8 /usr/bin/python3

と戻してやると再現しなくなりました。その後、

$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt install python3.10

でインストール完了。

(番外編)venvの作成に失敗する

以下のようになった。

$ python -m venv .venv
Error: Command '['/home/canada/work/contec/.venv/bin/python3.10', '-m', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.

以下のようにpython-3.10-venvをインストールすれば解決する

$ sudo apt install python3.10-venv
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?