pipenvでPythonのバージョンを変更する方法
pipenvではプロジェクト単位でPythonのバージョンを簡単に指定・変更することができます。既存のプロジェクトのPythonバージョンを変更するには、`--python`オプションを使用して新しいバージョンを指定します。このコマンドを実行することによって、Pipfileの`[requires]`セクションが更新され、新しいPythonバージョンが反映されます。
pipenvは仮想環境を自動的に管理するため、システムにインストールされている複数のPythonバージョン間で簡単に切り替えができます。仮想環境が既に存在している場合は、バージョン変更時に自動的に再作成されるため、常に指定したバージョンの環境で開発を進めることができます。
バージョン変更後は必ず`pipenv install`コマンドを実行して、新しいPythonバージョンで依存パッケージを再インストールする必要があります。このステップを怠ると、古いバージョン向けにコンパイルされた拡張モジュールが正常に動作しない可能性があります。
【サンプルコード】
# 既存のプロジェクトでPythonバージョンを3.9に変更する
$ cd myproject
$ pipenv --python 3.9
# 特定のパスのPythonインタプリタを指定する場合
$ pipenv --python /usr/local/bin/python3.10
# システムに複数のPythonバージョンがインストールされている場合のフルパス指定
$ pipenv --python /opt/python3.11/bin/python
【実行結果】
Creating a virtualenv for this project...
Pipfile: /path/to/myproject/Pipfile
Using /usr/local/bin/python3.9 (3.9.10) to create virtualenv...
⠋ Creating virtual environment...created virtual environment in 285ms
creator CPython3Posix(dest=/home/user/.local/share/virtualenvs/myproject-hb_5sL3t, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/user/.local/share/virtualenv)
added seed packages: pip==23.0.1, setuptools==67.6.1, wheel==0.40.0
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
✔ Successfully created virtual environment!
Virtualenv location: /home/user/.local/share/virtualenvs/myproject-hb_5sL3t
Pipfileを編集してpipenvのPythonバージョンを変更する
pipenvではPipfileを直接編集してPythonのバージョンを変更することも可能です。Pipfileの`[requires]`セクションにある`python_version`または`python_full_version`の値を変更することによって、使用するPythonのバージョンを指定できます。変更後は`pipenv --rm`コマンドで既存の仮想環境を削除し、`pipenv install`で新しいバージョンの環境を再構築します。
Pipfileでは`python_version`で主要バージョン(例:3.9)を指定するか、`python_full_version`で完全なバージョン(例:3.9.10)を指定することができます。プロジェクトの互換性要件に応じて適切な指定方法を選択することによって、開発チーム間での環境の一貫性を保つことができます。
バージョン変更時には、新しいバージョンで動作しない可能性のあるパッケージの互換性も確認する必要があります。特にC拡張を含むパッケージは、Pythonバージョンによって動作が異なる場合があるためです。
【サンプルコード】
# Pipfileの編集例
# 変更前のPipfile
[requires]
python_version = "3.8"
# 変更後のPipfile
[requires]
python_version = "3.10"
# 変更後、以下のコマンドを実行
$ pipenv --rm
$ pipenv install
【実行結果】
Removing virtualenv (/home/user/.local/share/virtualenvs/myproject-hb_5sL3t)...
Creating a virtualenv for this project...
Pipfile: /path/to/myproject/Pipfile
Using /usr/local/bin/python3.10 (3.10.4) to create virtualenv...
⠋ Creating virtual environment...created virtual environment in 291ms
creator CPython3Posix(dest=/home/user/.local/share/virtualenvs/myproject-nU2jK9_p, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/user/.local/share/virtualenv)
added seed packages: pip==23.0.1, setuptools==67.6.1, wheel==0.40.0
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
✔ Successfully created virtual environment!
Installing dependencies from Pipfile.lock (db4242)...
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 12/12 — 00:00:05
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
新規プロジェクトでpipenvのPythonバージョンを指定する
新しいプロジェクトを始める際には、最初からPythonのバージョンを明示的に指定することができます。`pipenv --python`コマンドに続けてバージョン番号を指定すると、そのバージョンのPythonを使用する仮想環境が作成されます。このコマンドはプロジェクトディレクトリにPipfileとPipfile.lockを生成し、指定したPythonバージョンを記録します。
新規プロジェクトでは特定のPythonバージョンを指定することによって、開発環境と本番環境の一貫性を確保できます。また、プロジェクトの開始時点でバージョンを固定することによって、将来的な依存関係の問題を未然に防ぐことができます。
pipenvはパス指定だけでなく、pyenvなどのバージョン管理ツールとも連携して動作するため、システムに複数のPythonバージョンがインストールされている場合でも柔軟に対応できます。この連携機能を活用することによって、複数のプロジェクトで異なるPythonバージョンを簡単に管理することが可能になります。
【サンプルコード】
# 新規プロジェクト作成とPythonバージョン指定
$ mkdir new_project
$ cd new_project
$ pipenv --python 3.8
# pyenvで管理されているPythonバージョンを指定する場合
$ pipenv --python 3.9.5
# 特定のパッケージと一緒にインストールする場合
$ pipenv --python 3.10 install requests pandas
【実行結果】
Creating a virtualenv for this project...
Pipfile: /path/to/new_project/Pipfile
Using /usr/local/bin/python3.8 (3.8.12) to create virtualenv...
⠋ Creating virtual environment...created virtual environment in 278ms
creator CPython3Posix(dest=/home/user/.local/share/virtualenvs/new_project-dF4_5Lzg, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/user/.local/share/virtualenv)
added seed packages: pip==23.0.1, setuptools==67.6.1, wheel==0.40.0
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
✔ Successfully created virtual environment!
Virtualenv location: /home/user/.local/share/virtualenvs/new_project-dF4_5Lzg
Creating a Pipfile for this project...
pipenvでインストール済みパッケージのPythonバージョン互換性を確認する
pipenvでPythonバージョンを変更する際には、インストール済みのパッケージが新しいバージョンと互換性があるか確認することが重要です。`pipenv check`コマンドを使用することによって、依存関係の問題や脆弱性を検出できます。また、バージョン変更後に`pipenv install`を実行すると、パッケージの互換性が自動的にチェックされます。
Pythonのメジャーバージョン間(例:2.xから3.x)や、マイナーバージョン間でも一部パッケージは互換性に問題が生じることがあります。特にC拡張モジュールを含むパッケージや、特定のPython機能に依存しているパッケージは注意が必要です。
`pipenv graph`コマンドを使用すると、現在のプロジェクトにインストールされているパッケージの依存関係ツリーを表示できます。これによってパッケージ間の関係を視覚的に理解し、潜在的な問題を事前に把握することができます。
【サンプルコード】
# パッケージの依存関係と互換性を確認する
$ pipenv check
# 依存関係ツリーを表示する
$ pipenv graph
# Pythonバージョン変更後にすべてのパッケージを再インストール
$ pipenv --python 3.11
$ pipenv install
【実行結果】
Checking PEP 508 requirements...
Passed!
Checking installed package safety...
All good!
requests==2.28.2
- certifi [required: >=2017.4.17, installed: 2022.12.7]
- charset-normalizer [required: >=2, installed: 3.1.0]
- idna [required: >=2.5, installed: 3.4]
- urllib3 [required: >=1.21.1, installed: 1.26.15]
pandas==1.5.3
- numpy [required: >=1.20.3, installed: 1.24.2]
- python-dateutil [required: >=2.8.1, installed: 2.8.2]
- six [required: >=1.5, installed: 1.16.0]
- pytz [required: >=2020.1, installed: 2022.7.1]※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
Gitでブランチ(branch)を作成する方法
crontabの書き方
PDFをExcelに変換する方法
Excelでプルダウンを設定する方法
エクセルでページ区切りを設定する方法
Markdownの取り消し線の書き方
ラズベリーパイでできること9選
Gitでbranch(ブランチ)を削除する方法をローカル・リモート別に解説
git addの取り消し方法を状況別に解説
CSSのstickyプロパティでWebサイトに固定要素を実装する方法
ITやプログラミングに関するニュース
アイアール技術者教育研究所がエクセルギー解析計算ウェビナーを開催、省エネと環境負荷低減に貢献
フラー株式会社がアプリ市場トレンド解説ウェビナーを3月25日に開催、成長アプリの共通項とデータ活用を解説
株式会社BOTANICOが2026年版X運用最新戦略ウェビナーを開催、成果につなげる資産型運用を解説
AIストーム株式会社がOpenClaw活用セミナーを開催、AIエージェントがビジネス現場を変革
株式会社オロが建設コンサルティング業向けウェビナーを開催、技術部門の損益可視化を支援
アルティウスリンク株式会社が経理向けBPO活用ウェビナーを開催、課題解決と業務効率化を支援
株式会社日本計画研究所がAI時代のインフラセミナー開催、GPUとデータセンターの課題を解説
株式会社カウンターワークスがリーシング業務AI活用ウェビナー開催、既存ツールでAIエージェント実践
株式会社セキドがDJI産業機セミナーを福井で開催、3Dデータ活用と機材選定を無料解説
株式会社ナビットが補助金活用ウェビナーを開催、販促費削減と集客力向上を解説
