🛠️

Pythonをvenvで管理

2022/03/10に公開

venvをなぜ使う?

venv

IT用語辞典 e-Wordsより

venvとは、Pythonの標準の言語処理系が持つ機能の一つで、システム上にPythonが動作する仮想的な環境(virtual environment)を作り出すもの。同じシステム上に複数の独立した環境を構成して使い分けることができる。

Pythonを仮想環境で使う事ができ、ライブラリなどを仮想環境別に用意する事ができます。(グローバルなPythonを変えずに済む)

PCでグローバルなPythonだけを使い、沢山ライブラリを入れたりしていると、ライブラリ同士で干渉する場合があります。また、仕事などでプロジェクト別に分けて管理することが出来ます。

venvで仮想環境を作る

今回は、Linux系の説明です。

準備

# 作業ディレクトリ(testVenv)の作成
$ mkdir testVenv
$ cd testVenv
# Pythonのテストファイルを作成
$ echo 'print("hello!")' > hello.py 
# 「abc」という仮想環境の作成
$ python3 -m venv abc

仮想環境で作業

最初に、仮想環境に入る方法。
(abc) $ ← うまくいくと、左に仮想環境名が表示されます。

$ source abc/bin/activate
(abc) $

次に、最初に作ったpythonのテストファイルを実行してみます。「hello!」と出力されると思います。

$ python3 hello.py
hello!

最後は、仮想環境から抜ける方法。

$ deactivate

すると、左の(abc)がなくなり、無事抜ける事ができます。

VScodeでデバッグしてみる

vscodeにpython拡張をインストールしていない場合は先にインストールします。
pythonインストール

  1. vscodeで、作業フォルダ(testVenv)を開く。←デバッグをした時、自動でvenvを認識してくれる。
  2. pythonファイルを選択する。
  3. メニューバー>実行>デバッグの開始 (F5)

一番上の「Debug the currently active Python file」を選択すると実行されます。
vscode実行前

実行結果(hello!)と仮想環境(abc)にいることがわかります。
vscode実行

おまけ

他の場所で動かしたり、GitHubにアップする時にrequirements.txtを使うと便利です。requirements.txtは、仮想環境下でインストールしたパッケージを記載しておき、他の場所でも同じ環境にするために、パッケージをrequirements.txtから一括でインストールできるというものです。

ただのパッケージリストです。(テキストファイル)

# requirements.txtの作成
$ pip3 freeze > requirements.txt 
# 一括インストール
$ pip3 install -y -r requirements.txt

参考

Discussion