以前の記事にPoetryによるPython仮想環境の構築方法について書いたが、最近はPython仮想環境としてPoetryではなく、以前使っていたpipenvをまた使うようになっている。
Poetryはパッケージ管理方法が独特で何だか使いにくく感じられるようになってきた。GitHubなどに上がっているPythonプログラムはvirtualenvやpipenvを利用してるものものが多いし、requirements.txt
の扱いもpipenvの方がやリ易い。
自分の備忘録として、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
プロジェクトのパッケージ管理
Pipfile
とPipfile.lock
の存在するプロジェクトで(使用バージョンの)パッケージをインストールする
$ pipenv sync
Pipfile
から(最新バージョンの)パッケージをインストールする
$ pipenv install
Pipfile
からパケージをインストールし、アップデートがあればアップデートする
$ pipenv update
requirements.txt
を作成する
$ pipenv lock -r > requirements.txt
requirements.txt
を利用してパッケージをインストールする
$ pipenv install -r requirements.txt