【Python】venvでバージョン指定した仮想環境をLinux上に構築する方法
公開: 更新:LinuxでPythonのバージョン指定したvenv環境を構築する方法
Linuxではvenvモジュールを使用して、特定バージョンのPythonで仮想環境を構築できます。この方法ではシステムのPythonに影響を与えず、プロジェクトごとに独立した環境の作成が可能です。ベースとなるPythonをフルパスで指定することによって、必要なバージョンの仮想環境をセットアップします。
仮想環境を作成するには、まず使用したいPythonバージョンがインストールされているかどうかを確認します。Ubuntu系では、必要なバージョンのPythonとvenvパッケージをaptコマンドでインストールします。
#!/bin/bash
/usr/bin/python3.9 -m venv myproject_env
source myproject_env/bin/activate
python --version
| 詳細説明 | |
|---|---|
| 1行目 | シェルスクリプトの実行環境を指定 |
| 2行目 | Python 3.9を使用してvenv環境を作成 |
| 3行目 | 作成した仮想環境をアクティブ化 |
| 4行目 | 現在のPythonバージョンを確認 |
【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」
venv環境でパッケージのバージョンを指定する方法
venv環境内でパッケージをインストールする際も、バージョン指定子を使用してパッケージの特定バージョンを指定できます。バージョン指定をしない場合はコマンド実行時の最新バージョンが取得されますが、バージョン差異によるエラーを防ぐために、モジュールのバージョンを指定することをお勧めします。
要件ファイル(requirements.txt)を作成して使用することで、複数のパッケージとそのバージョンを一度に管理できます。その結果、環境の再現性が高まり、他の開発者と同じ環境を共有しやすくなります。
#!/bin/bash
echo "numpy==1.21.0
pandas==1.3.5
matplotlib==3.5.1" > requirements.txt
pip install -r requirements.txt
pip install requests==2.28.1
| 詳細説明 | |
|---|---|
| 1行目 | シェルスクリプトの実行環境を指定 |
| 3行目 | numpyパッケージをバージョン1.21.0で指定 |
| 4行目 | pandasパッケージをバージョン1.3.5で指定 |
| 5行目 | matplotlibパッケージをバージョン3.5.1で指定してファイル作成完了 |
| 6行目 | 要件ファイルを使用して一括インストールを実行 |
| 7行目 | 個別にrequestsパッケージをバージョン2.28.1で指定してインストール |
Linuxの既存venv環境でPythonバージョンを変更する方法
venvで作成した仮想環境のPythonバージョンを変更する場合、環境は作成時のローカルバージョンで固定されているため、単純に切り替えることはできません。バージョン変更には--clearオプションを使用して、仮想環境を一度クリアする必要があります。
この方法では、まずローカル環境のPythonを変更したいバージョンに切り替え、次に既存の仮想環境をクリアします。この操作により仮想環境内のPythonバージョンを更新できますが、以前にインストールしたパッケージはすべて失われるため、再インストールが必要です。
#!/bin/bash
pip freeze > requirements.txt
deactivate
/usr/bin/python3.10 -m venv myproject_env --clear
source myproject_env/bin/activate
pip install -r requirements.txt
| 詳細説明 | |
|---|---|
| 1行目 | シェルスクリプトの実行環境を指定 |
| 2行目 | 現在の環境にインストールされているパッケージをrequirements.txtに保存 |
| 3行目 | アクティブな仮想環境を終了 |
| 4行目 | Python 3.10を使用して既存の仮想環境をクリアして再作成 |
| 5行目 | 新しい仮想環境をアクティブ化 |
| 6行目 | 保存しておいたパッケージリストを使用して再インストール |
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
【Python】仮想環境から抜ける方法
【Python】文字列から改行コードを除去する方法
【Python】10回の繰り返し処理を実装する方法
【Python】df(DataFrame)とは?基本的な使い方やデータ操作について解説
【Python】指定のファイルがあれば削除する方法
ITやプログラミングに関するニュース
Azure SQL Managed InstanceがVector型Public Preview対応開始、AI駆動アプリケーション開発の効率化を実現
GoogleがGmailアプリにGeminiサマリーカードを導入、メール要約の自動表示機能が利用可能に
ZenchordとNottaが共同開発したAIイヤホンZenchord 1をMakuakeで先行公開、音声認識から議事録作成まで自動化
Ideinが音声解析AIサービス「Phonoscape」の提供を開始、対面接客現場での会話データ活用が可能に
Microsoftが.NET 10 Preview 4でdotnet run app.cs機能をリリース、プロジェクトファイル不要でC#実行が可能に

