
【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#実行が可能に