【Python】pipenvでバージョン変更を行う方法

【Python】pipenvでバージョン変更を行う方法

公開: 更新:
CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座



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

Python研修一覧はこちら

目的に合うPython研修を一覧形式から探したい方は、ぜひご利用ください。

Python研修を比較する

Java研修一覧はこちら

目的に合うJava研修を一覧形式から探したい方は、ぜひご利用ください。

Java研修を比較する

PHP研修一覧はこちら

目的に合うPHP研修を一覧形式から探したい方は、ぜひご利用ください。

PHP研修を比較する

新入社員研修

目的に合う新入社員研修を一覧形式から探したい方は、ぜひご利用ください。

新入社員研修を比較する

全ての研修からも探したい方はこちら

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...

Python基礎・実践(Django)

企業・法人向けのPython研修では、基礎から応用まで体系的に学べます。

Python研修の詳細

DX社員研修

企業・法人向けのDX研修では、実務に繋がるリスキリングでITレベルを向上させます。

DX研修の詳細

Javaエンジニア育成研修

企業・法人向けのJavaエンジニア育成研修では、Javaの基礎から応用まで確実に習得できます。

Java研修の詳細

新卒・新入社員向け研修

企業・法人に新入社員・新卒社員に向けたプログラミング研修を提供しています。

新入社員研修の詳細

コードキャンプのIT研修を全て見る

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やプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

企業・法人向けのIT・プログラミング・生成AI研修を探す、比較する - IT・プログラミングを知って学べるコネクトメディア CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプが提供する無料で学べるプログラミングスクール講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 3.5日の研修で、年間1,600時間の削減効果が見込まれる。東京きらぼしフィナンシャルグループのDX人材育成事例 - IT・プログラミングを知って学べるコネクトメディア 配属3ヶ月で30%の生産性向上を実現するいよぎんコンピュータサービスの新人研修に迫る - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する