どうも、ごんさくです。
プログラミング学習で、初心者が最初につまずくポイントと言えば環境構築ではないでしょうか。私も最初は開発環境、仮想環境の概念がそもそも理解できず困った経験があります。
Pythonの場合はAnacondaがデファクトスタンダードになっている印象で、導入方法を説明する記事をけっこう見かけます。ただもちろんその人の目的や用途によりますが、個人が家で少し勉強する程度であれば、venvで十分じゃないかなと思います。
そんなわけで、Python初心者の人向けにvenvの基本的な使い方を紹介したいと思います。
Pythonの開発環境構築
なぜAnacondaを使わない?
Anacondaをおすすめしない理由はズバリ高機能すぎることです。
ちょっとPythonを勉強したいだけなのによくわからないソフトをインストールして、たくさんのメニューから環境を選んで、、みたいなAnacondaの操作を時間をかけて覚えなくても、環境構築は必要最小限にして少しでも早くPythonの勉強を初めることを優先した方がいいと思っています。
学び初めの頃はそんなにたくさんのパターンのパッケージを管理する必要もないと思いますしね。もっと言うとvenvすらも必要なくて、すべて最新のパッケージをインストールするのでも特に問題ないと思います。笑
venvとは?
venvを使うと、プロジェクトごとに独立したPython環境を作成できます。これにより、プロジェクトごとに使用するパッケージのバージョンを分けることができます。
1つの環境に複数のバージョンのパッケージをインストールすることができません。そのためプロジェクトAではあるパッケージのバージョン1.0を使う、別のプロジェクトBでは同じパッケージのバージョン2.0を使うという場合、どちらのバージョンを入れるか困ってしまいます。
そんな時に役立つのが、Anacondaやvenvです。プロジェクトAやBごとに専用の開発環境を作成することができるので、それぞれに合わせたパッケージのバージョンをインストールすることができます。
venvによる仮想環境は必須?
上記のようにvenvを使用する目的は、プロジェクトごとにパッケージのバージョンなどを管理したい場合がほとんどですので、とりあえずPythonをさわってみたい、勉強してみたいという人は、venvを使わなくても問題ない場合が多いです。その分、早くPythonを使ってみることとの方が大事です。
ただ、たまに学習本やハンズオン動画と異なるパッケージのバージョンを使っていると、うまく動作しないことがあります。そのような問題が発生したときだけ、venvを使ってその本や動画での学習専用の環境を作る、で十分OKです。
venvによる環境構築
ここからはvenvを使った開発環境の手順になります。さっそく使っていきましょう。
0. ターミナルを開く
Pythonのプロジェクトフォルダでターミナルを開きます。
シェルコマンドが実行できれば、ターミナルアプリでもVS Code上のターミナルでもかまいません。
1. 仮想環境の構築
まずは仮想環境を作成します。python3
の部分は、pythonのインストール方法によって異なります。以下のコマンド実行時に「コマンドが見つかりません」や「command not found」などが表示される場合は、python
に変更して実行してみてください。
python3 -m venv ./path/to/env
# プロジェクトフォルダの直下に、環境を「venv」という名前で作成する場合
python3 -m venv ./venv
2. 環境の有効化(Activate)
開発環境を有効化します。Activateします。
source ./path/to/env/bin/activate
# プロジェクトフォルダの直下に、環境を「venv」という名前で環境を作成した場合
source ./venv/bin/activate
3. pipの最新化
Pythonのパッケージ管理ツールの「pip」を最新バージョンにアップデートします。
忘れても特に問題はありませんが、バージョンが古い場合はpip実行時に、最新バージョンにアップデートするようにwarningが表示されます。
pip install --upgrade pip
4. 環境の無効化(Deactivate)
環境を使い終わったりした場合は無効化します。
無効化を実施せず、ターミナルを閉じても特に問題ありません。
deactivate
環境の削除
環境を削除したいときは、venvコマンドで作成した開発環境フォルダを削除するだけです。venvという名前で開発環境を作成した場合は、venvフォルダを削除してください。
venvによる環境構築(複製する場合)
ワークスペースやプロジェクトフォルダを変更する場合など、一度作成済みの環境を使いたい場合は、環境を複製することができます。
作成順序は、複製元のパッケージ一覧を出力後に、新しい環境にその一覧を取り込んで同じパッケージをインストールすることで同じ開発環境を作成します。
0. ターミナルを開く
Pythonのプロジェクトフォルダでターミナルを開きます。
シェルコマンドが実行できれば、ターミナルアプリでもVS Code上のターミナルでもかまいません。
1. 複製元のパッケージを出力する
複製元のプロジェクトフォルダに移動しインストールされているパッケージを出力します。pip freeze
は、インストール済みのパッケージ一覧を出力するコマンドです。
pip freeze > requirements.txt
2. 開発環境を複製する
新規作成するプロジェクトフォルダに移動し、requirements.txtを配置後、pipコマンドでパッケージをインストールします。
このコマンドでは、
pip install -r requirements.txt
まとめ
Pythonの環境構築をvenvコマンドで作成する方法を紹介しました。個人的にはAnacondaなど
最初にも書きましたが
では!