ヴェズルフェルニルの研究ノート

座右の銘「ただ一人犀の角のように歩め」的な研究活動ノート

【Python】pipenvによる仮想環境構築

以前の記事にPoetryによるPython仮想環境の構築方法について書いたが、最近はPython仮想環境としてPoetryではなく、以前使っていたpipenvをまた使うようになっている。

blog.ketus-ix.work

Poetryはパッケージ管理方法が独特で何だか使いにくく感じられるようになってきた。GitHubなどに上がっているPythonプログラムはvirtualenvやpipenvを利用してるものものが多いし、requirements.txtの扱いもpipenvの方がやリ易い。

pipenv.pypa.io

自分の備忘録として、pipenvのインストールと使い方を記事として残しておくことにする。

pipenvのインストール

pipenvのインストール方法として、システム側に入れるのと、言語ツール環境に入れるのの2つの方法がある。

pipenvをシステム側に入れる

$ sudo apt install python3-pip
$ pip3 install pipenv
% brew install pipenv

pipenvを言語ツール環境に入れる

pyenvを使っている場合

$ pyenv install 3.10.12
$ cd
$ pyenv global 3.10.12
$ python --version
Python 3.10.12
$ pip install pipenv

asdfを使っている場合

$ asdf install python 3.10.12
$ cd
$ asdf global python 3.10.12
$ python --version
Python 3.10.12
$ pip install pipenv

pipenvによる仮想環境作成/削除

仮想環境の作成

pyenvを使っている場合

$ mkdir PROJECT_DIR
$ cd PROJECT_DIR
$ pyenv local 3.10.12
$ python --version
Python 3.10.12
$ pipenv --python 3.10.12
Creating a virtualenv for this project...
Pipfile: /Users/LOGNAME/PROJECT_DIR/Pipfile
Using /Users/LOGNAME/.anyenv/envs/python/3.10.12/bin/python3 (3.10.12) to create virtualenv...
⠸ Creating virtual environment...created virtual environment CPython3.10.12.final.0-64 in 1593ms
....    ....
....    ....

✔ Successfully created virtual environment!
Virtualenv location: /Users/LOGINUSER/PROJECT_DIR/virtualenvs/.venv
Creating a Pipfile for this project...

asdfを使っている場合

$ mkdir PROJECT_DIR
$ cd PROJECT_DIR
$ asdf local python 3.10.12
$ python --version
Python 3.10.12
$ pipenv --python 3.10
Creating a virtualenv for this project...
Pipfile: /Users/LOGNAME/PROJECT_DIR/Pipfile
Using /Users/LOGNAME/.asdf/installs/python/3.10.12/bin/python3 (3.10.12) to create virtualenv...
⠸ Creating virtual environment...created virtual environment CPython3.10.12.final.0-64 in 1593ms
....    ....
....    ....

✔ Successfully created virtual environment!
Virtualenv location: /Users/LOGNAME/.local/share/virtualenvs/PROJECT_DIR-zadK1Q9j
Creating a Pipfile for this project...

仮想環境が作成されると、Pipefileというファイルが作成される。この中にインストールしたパッケージ情報が記述される。

また、以下の環境変数を設定しておくと、プロジェクトディレクトリの中に.venvというディレクトリが作成され、仮想環境のPythonインタープリタおよびパッケージはこの中にインストールされる。

export PIPENV_VENV_IN_PROJECT=true

仮想環境の削除

$ cd PROJECT_DIR
$ pipenv --rm

pipenvによるパッケージ管理

パッケージの追加

$ pipenv install PACKAGE_NAME

開発用パッケージの追加

$ pipenv install --dev PACKAGE_NAME

パッケージの削除

$ pipenv uninstall PACKAGE_NAME

pipenvによるPythonプログラム実行

仮想環境によって直接プログラムを実行

$ pipenv run python PROGRAM.py

仮想環境を起動して、プログラムを実行

$ pipenv shell
$ python PROGRAM.py

プロジェクトのパッケージ管理

PipfilePipfile.lockの存在するプロジェクトで(使用バージョンの)パッケージをインストールする

$ pipenv sync

Pipfileから(最新バージョンの)パッケージをインストールする

$ pipenv install

Pipfileからパケージをインストールし、アップデートがあればアップデートする

$ pipenv update 

requirements.txtを作成する

$ pipenv lock -r > requirements.txt

requirements.txtを利用してパッケージをインストールする

$ pipenv install -r requirements.txt