Skip to content

pip が Python 3.10 で動作しない問題の解決方法

問題の概要

Ubuntu に Python 3.10 をインストールした後、python3.10 -m pip install <ライブラリ名> を実行すると、次のようなエラーが発生することがあります:

python
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3/dist-packages/pip/__main__.py", line 19, in <module>
    sys.exit(_main())
  ...
ImportError: cannot import name 'html5lib' from 'pip._vendor' (/usr/lib/python3/dist-packages/pip/_vendor/__init__.py)

この問題は、システムの pip バージョンが古すぎるために発生します。Ubuntu の標準リポジトリには最新版の pip が含まれていないため、Python 3.10 との互換性の問題が生じます。

解決方法

方法 1: 公式スクリプトを使用した pip のインストール(推奨)

最もシンプルで確実な方法は、Python 公式のインストールスクリプトを使用することです:

bash
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10

インストール後、以下のコマンドで正しくインストールされたか確認します:

bash
python3.10 -m pip --version

出力例:

pip 22.2.2 from /home/user/.local/lib/python3.10/site-packages/pip (python 3.10)

必要に応じて pip を最新版にアップグレードします:

bash
python3.10 -m pip install --upgrade pip

WARNING

curl がインストールされていない場合は、先に sudo apt install curl を実行してください。

方法 2: パッケージリポジトリの追加と必要なパッケージのインストール

Python 3.10 を正しく動作させるには、適切なリポジトリと必要なパッケージをインストールする必要があります:

bash
# ソフトウェアプロパティ共通パッケージのインストール
sudo apt install software-properties-common -y

# deadsnakes PPA リポジトリの追加(最新のPythonバージョンを提供)
sudo add-apt-repository ppa:deadsnakes/ppa

# システムの更新
sudo apt update && sudo apt upgrade -y

# Python 3.10 のインストール(まだの場合)
sudo apt install python3.10

# Python 3.10 用 distutils のインストール
sudo apt install python3.10-distutils

# pip のインストール
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10

方法 3: ensurepip の使用

場合によっては、Python に組み込まれている ensurepip モジュールを使用する方法も有効です:

bash
# pip の確実なインストール
python3.10 -m ensurepip

# pip のアップグレード
python3.10 -m pip install -U pip

仮想環境の使用(ベストプラクティス)

システム全体のPython環境を変更したくない場合や、プロジェクトごとに独立した環境を作成したい場合は、仮想環境を使用することをお勧めします:

bash
# 仮想環境機能のインストール
sudo apt install python3.10-venv

# 仮想環境の作成
python3.10 -m venv myenv

# 仮想環境の有効化
source myenv/bin/activate

# パッケージのインストール
pip install <package-name>

# 仮想環境の解除
deactivate

エイリアスの設定

頻繁に Python 3.10 の pip を使用する場合は、.bashrc ファイルにエイリアスを追加すると便利です:

bash
echo "alias pip310='python3.10 -m pip'" >> ~/.bashrc
source ~/.bashrc

これで pip310 install <パッケージ名> のように簡単に使用できます。

トラブルシューティング

パスの問題

他の Python 環境(Conda など)をインストールしている場合、パスの競合が発生することがあります。パスを確認するには:

bash
echo $PATH
which pip
which python3.10

パスに ~/.local/bin が含まれていることを確認してください。含まれていない場合は、.bashrc ファイルに追加します:

bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

権限の問題

パーミッションエラーが発生する場合は、ユーザーインストールを使用します:

bash
python3.10 -m pip install --user <package-name>

まとめ

Python 3.10 で pip が動作しない問題は、主に古いシステム pip と新しい Python バージョンの互換性問題によって発生します。公式のインストールスクリプトを使用するか、適切なリポジトリから必要なパッケージをインストールすることで解決できます。また、仮想環境を使用することで、システムのPython環境をクリーンに保ちながら開発を行うことができます。

TIP

常に最新の安定版 pip を使用し、定期的に python3.10 -m pip install --upgrade pip でアップグレードすることをお勧めします。