pip が Python 3.10 で動作しない問題の解決方法
問題の概要
Ubuntu に Python 3.10 をインストールした後、python3.10 -m pip install <ライブラリ名>
を実行すると、次のようなエラーが発生することがあります:
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 公式のインストールスクリプトを使用することです:
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
インストール後、以下のコマンドで正しくインストールされたか確認します:
python3.10 -m pip --version
出力例:
pip 22.2.2 from /home/user/.local/lib/python3.10/site-packages/pip (python 3.10)
必要に応じて pip を最新版にアップグレードします:
python3.10 -m pip install --upgrade pip
WARNING
curl
がインストールされていない場合は、先に sudo apt install curl
を実行してください。
方法 2: パッケージリポジトリの追加と必要なパッケージのインストール
Python 3.10 を正しく動作させるには、適切なリポジトリと必要なパッケージをインストールする必要があります:
# ソフトウェアプロパティ共通パッケージのインストール
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
モジュールを使用する方法も有効です:
# pip の確実なインストール
python3.10 -m ensurepip
# pip のアップグレード
python3.10 -m pip install -U pip
仮想環境の使用(ベストプラクティス)
システム全体のPython環境を変更したくない場合や、プロジェクトごとに独立した環境を作成したい場合は、仮想環境を使用することをお勧めします:
# 仮想環境機能のインストール
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
ファイルにエイリアスを追加すると便利です:
echo "alias pip310='python3.10 -m pip'" >> ~/.bashrc
source ~/.bashrc
これで pip310 install <パッケージ名>
のように簡単に使用できます。
トラブルシューティング
パスの問題
他の Python 環境(Conda など)をインストールしている場合、パスの競合が発生することがあります。パスを確認するには:
echo $PATH
which pip
which python3.10
パスに ~/.local/bin
が含まれていることを確認してください。含まれていない場合は、.bashrc
ファイルに追加します:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
権限の問題
パーミッションエラーが発生する場合は、ユーザーインストールを使用します:
python3.10 -m pip install --user <package-name>
まとめ
Python 3.10 で pip が動作しない問題は、主に古いシステム pip と新しい Python バージョンの互換性問題によって発生します。公式のインストールスクリプトを使用するか、適切なリポジトリから必要なパッケージをインストールすることで解決できます。また、仮想環境を使用することで、システムのPython環境をクリーンに保ちながら開発を行うことができます。
TIP
常に最新の安定版 pip を使用し、定期的に python3.10 -m pip install --upgrade pip
でアップグレードすることをお勧めします。