実践・中級問題チェック

問題 1 /40

仮想環境に関する説明で、誤っているものはどれか。

選択 1

仮想環境を使うと、プロジェクトごとに異なるパッケージ構成を管理できる。

選択 2

「python -m venv ディレクトリ名」で仮想環境を作成する際、ディレクトリ名は省略できる。

選択 3

仮想環境を無効化するdeactivateコマンドは、どのOSでも同じコマンドを使う。

選択 4

仮想環境で実行するPython本体のバージョンは、仮想環境を作成する際に決まる。

解説

選択肢2が正解です。

【選択肢1】
仮想環境を使うと、プロジェクトごとに異なるパッケージ構成を管理できる。

正しい説明です。

仮想環境はプロジェクトごとに独立した環境を作る仕組みです。それぞれのプロジェクトで異なるパッケージやバージョンが使えます。

# プロジェクトA
python -m venv envA
source envA/bin/activate
pip install requests==2.28

# プロジェクトB
python -m venv envB
source envB/bin/activate
pip install requests==2.32


【選択肢2】
「python -m venv ディレクトリ名」で仮想環境を作成する際、ディレクトリ名は省略できる。

誤った説明です。

仮想環境を作成する際、ディレクトリ名(保存先フォルダ)は必須で、省略するとエラーになります。

選択肢1の例文であれば、envAやenvBは省略できません。


【選択肢3】
仮想環境を無効化するdeactivateコマンドは、どのOSでも同じコマンドを使う。

正しい説明です。

どのOSでも、deactivateと入力すると通常のシステム環境に戻ります。

仮想環境に入るアクティベートは、OSによって記述が異なります。

# Mac・Linux
source envA/bin/activate

# Windows PowerShell
.\envA\Scripts\Activate.ps1

# Windows コマンドプロンプト
envA\Scripts\Activate.bat


【選択肢4】
仮想環境で実行するPython本体のバージョンは、仮想環境を作成する際に決まる。

正しい説明です。

venvで作成した仮想環境は、作成時に使用したPython本体の実行ファイルをそのまま使います。

例えば、python3.10とpython3.11がインストールされている環境であれば、次のように仮想環境を作成すると、それぞれの仮想環境でそれぞれのPythonバージョンが使われます。

python3.10 -m venv env310
python3.11 -m venv env311

なお、複数のバージョンのPythonをインストールする際は、pyenvを使います。

pyenvはシステムツールのため、pipでインストールするのではなく、MacならHomebrewでインストールします。

# pyenvのインストール(Mac)
brew install pyenv

# Pythonの各バージョンのインストール
pyenv install 3.10
pyenv install 3.11

pyenv install --list
▶︎
3.10
3.11

バージョンを切り替える場合は、globalで指定します。

pyenv global 3.11
python --version
▶︎
3.11

Pythonのバージョンを3.11に切り替えてから仮想環境を「python -m venv env」で作成すると、その仮想環境は3.11で動きます。


(公式書籍 p.12-14)