この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
Python学習のためにWebアプリ開発をしていて、仮想環境を複数作成することがベストプラクティスだと聞きました。
Pythonには仮想環境を作成できる標準ライブラリ"venv"がありますが、サードパーティの"virtualenv"もあります。
"virtualenv"は"venv"よりも柔軟にバージョンの選択や環境のカスタマイズが可能です。
今回の記事では、"virtualenv"の使い方を紹介します。
仮想環境を作成してみよう
■virtualenvとは
"virtualenv"は、Pythonを利用するプロジェクトごとに、独立した環境(仮想環境)を作成し、それぞれのプロジェクトで異なるパッケージやライブラリを管理できるツールです。
【メリット】
- パッケージの隔離: 仮想環境を使用することで、プロジェクトごとに必要なパッケージやライブラリを独立して管理できます。これにより、プロジェクト間でのパッケージの衝突や競合を避けることができます。
- 依存関係の管理: プロジェクトごとに必要なライブラリとそのバージョンを明示的に指定することができます。これにより、プロジェクトの動作が一貫して安定し、予期しない依存関係の変更による影響を受けにくくなります。
- バージョンの管理: Pythonのバージョンをプロジェクトごとに異なるものを使用したい場合、仮想環境を使用することで、異なるPythonバージョンを切り替えて利用できます。
- プロジェクトの独立性: 仮想環境を使用することで、特定のプロジェクトに依存せずにPythonの環境を管理できるため、プロジェクトを独立させることができます。
■virtualenvの使ってみる
●前提条件
仮想環境を作成する際に、IDEツール"PyCharm"を利用します。PyCharmのインストール方法はこちら
- OS: Windows
- IDE: PyCharm
●Pycharmの機能を利用
まずはPyCharmの機能を利用して、仮想環境を作成する方法を紹介します。
↓projectを開きます。
↓左上のメニューから[Files]→[Settings]をクリックします。
↓[Project]→[Project Interpreter]をクリックします。現在はanaconda3のPython3.11を利用していますね。
↓[Add Interpreter]をクリックします。
↓[Virtualenv Environment]をクリックし、任意の設定を行ってください。わたしは以前PCにインストールした"Python3.9"で仮想環境を作成してみます。
↓[OK]をクリックします。
↓新たに仮想環境を作ると、必要最低限のライブラリしか入っていません。問題なければ、[OK]をクリックします。
↓
↓さきほど設定した内容で仮想環境が作成されます。作成されるまで待ちましょう。
↓完了しましたら、ためしにmain.pyに以下のコードを記述し、実行してみましょう。はじめはPython3.11でした。
import sys
print(sys.version)
↓右上にあるProject名をクリックし、[Edit Configyurations]をクリックします。
↓[Run]の項目で、自身が設定したPythonのバージョンにしましょう。
↓[OK]をクリックします。
↓もう一度実行を押しましょう。[shift + F10]でも実行できます。バージョンは変わりましたでしょうか?
import sys
print(sys.version)
仮想環境を作成しましたが、最低限のライブラリしか入っていません。なにかインストールしてみましょう。
[File]→[Settings]をクリックします。
↓[Project]の[Project Interpreter]をクリックし、画面中央にある[+]を押してください。
↓検索窓でインストールしたいパッケージをインストールしてみましょう。わたしは簡単にWebアプリを実装できる[Flask]をインストールしてみます。[Flask]を選択し、[Install Pavkage]をクリックしてください。
↓インストールに成功したメッセージが出ましたら、ウィンドウを消します。
↓ProjectにFlaskがインストールされたことを確認し、[OK]を押しましょう。※Packageがめちゃくちゃ増えていますが、FlasKをインストールすると、Flaskに必要な他のパッケージもインストールされます。
Pycharmの機能を利用して、仮想環境を作成するのは以上です。
●ターミナル
つぎはターミナルを利用して作成する方法を紹介します。
↓PyCharmの左下に[Terminal]ボタンがありますので、クリックします。
↓"virtualenv"をインストールします。人によってはインストール済みかもしれません。
pip install virtualenv
↓"virtualenv"がインストールできましたら、仮想環境を作成するコマンドを入力します。仮想環境の名前は任意で入力してください。
virtualenv test_python_env
virtualenv <任意の名前>
↓作成が完了しても、自動的に仮想環境には切り替わりません。Pythonと打ち、対話型シェルを起動します。その後、[import flask]と打ってみましょう。すでにインストール済みのパッケージのため、エラーはおきません。
(base) PS C:\Users\odeco\PycharmProjects\pythonProject> python
Python 3.11.4 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 13:38:37) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
↓
↓それでは、作成した仮想環境(test_python_env)を起動します。つぎのコマンドを入力してください。コマンドラインの左側に、仮想環境名が表示されるはずです。
test_python_env\Scripts\Activate.ps1
↓[python]と打ち、対話型シェルを起動し、flaskをインポートしてみましょう。
(base) (test_python_env) PS C:\Users\odeco\PycharmProjects\pythonProject> python
Python 3.11.4 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 13:38:37) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'flask'
ターミナルで作成した仮想環境ではFlaskをインストールしていないので、エラーが出ていますね。
今回は以上です。仮想環境が起動していますので、以下のコマンドで停止しましょう。
deactivate
まとめ:仮想環境作成ツール"virtualenv"使ってみる
Pythonは人気プログラミング言語のひとつです。習熟することで、幅広いキャリアが望めるかと思います。
Webアプリ開発をする際に、仮想環境を作成することは有用です。バージョン管理もそうですが、依存関係の管理にめちゃくちゃ役に立ちます。ぜひ試してみてください。
参考リンク:PyCharm
↓ほかの協栄情報メンバーもPythonに関する記事を公開しています。ぜひ参考にしてみてください。
■Pythonの3つの共通パス操作(lujian)
https://cloud5.jp/python-path/
■天気予報情報をスクレイピング(Python)で、LINE NotifyによりLINE通知の構築(INAMURA)
https://cloud5.jp/web-scraping_line-notify/
■Pythonでlxmlを用いてhtmlから情報取得(zhangzy)
https://cloud5.jp/python-ixml/