はじめに
pipenvからpdmに乗り換えました。
useするだけで仮想環境を触れるので、activate、deactivateで仮想環境に出入りする用途は限られるかもしれません。
また、venv.backendはPEP標準のvenvを使いました。
仮想環境を管理する場所をプロジェクトのディレクトリにするか、またはホームディレクトリにするかを選べます。
これもコマンドで管理できるので大変便利です。
環境
- Debian Linux bookworm - PDM, version 2.22.0
pdmのインストール
curl -sSL https://pdm-project.org/install-pdm.py | python3 -
インストール先は以下となります。
$HOME/.local
~/.bashrcにパスを追記します。
export PATH=/home/hoge/.local/bin:$PATH
反映させます。
source ~/.bashrc または . ~/.bashrc
インストールキャッシュ機能を有効にします。
pdm config --global install.cache True pdm config -l
チームで利用する場合、プロジェクトのディレクトリ内 (.venv/) に仮想環境を配置して、プロジェクトの独立性を保つ方が良いとされています。
ただ、個人で利用する場合、ホームディレクトリ (~/.venvs) に仮想環境を一元管理するのが一般的なので、プロジェクトのディレクトリに作らないようにします。
pdm config venv.in_project False
デフォルトは「~/.local」に作成されますが、pipenvと同じにするために「~/.venvs」に作成します。
pdm config venv.location ~/.venvs
設定を確認します。
~/.config/pdmに設定ファイルがあります。
pdm config -l
.gitignoreへの追加
.pdm.toml .pdm-python __pypackages__
pdmのアップデート
pdm self update
Pythonのインストール
Pythonのバージョンを管理するためにpyenvをインストールします。
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
~/.bashrc、または~/.profileの最終行に環境変数を追記します。
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)"
反映させます。
source ~/.bashrc または . ~/.bashrc
pyenvをアップデートするためのモジュールをインストールします。
git clone https://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update
pyenvで新しいバージョンのPythonを扱うにはアップデートが必要です。
pyenv update
必要ならpyenv-virtualenvをインストールします。
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
仮想環境の作成
pyenvでインストール可能なPythonのリスト表示して、最新バージョンをインストールします。
pyenv install -l | grep '^ 3\.[0-9]*\.[0-9]' pyenv install 3.13.1 pyenv versions
「3.13.1」がインストールされたことを確認します。
* system (set by /home/hoge/.pyenv/version) 3.13.1
プロジェクトのディレクトリに移動します。
プロジェクトを初期化してpyproject.tomlを作成します。
cd <<project directory>> pdm init
インストール済みのPythonが表示されるので選択します。
今回は、
Creating a pyproject.toml for PDM... Please enter the Python interpreter to use 0. cpython@3.11 (/home/hoge/.pyenv/shims/python3) 1. cpython@3.13 (/home/hoge/.pyenv/versions/3.13.1/bin/python3.13) 2. cpython@3.11 (/usr/bin/python3.11) 3. cpython@3.11 (/usr/bin/python3) Please select (0): 1 Virtualenv is created successfully at /project/.venv Project name (project_name): Project version (0.1.0): Do you want to build this project for distribution(such as wheel)? If yes, it will be installed by default when running `pdm install`. [y/n] (n): License(SPDX name) (MIT): Author name (): hogehoge Author email (): hoge@xxx.xx.xx Python requires('*' to allow any) (==3.13.*): Project is initialized successfully Found following files from other formats that you may import: 0. /project/Pipfile (pipfile) 1. don't do anything, I will import later. Please select: 0 Changes are written to pyproject.toml.
環境の状態を表示します。
pdm info
作成した仮想環境(プロジェクト)を作成します。
「3.13.1」はPythonのバージョン番号。
pdm venv create --name <<project_name>> 3.13.1
作成した仮想環境(プロジェクト)を切り替えます。
プロジェクト内でのPDMの動作に対して、特定のPythonバージョンまたは仮想環境を使えるようにします。
bashなどのシェルに影響を与えないので、コマンドはシステムのPython環境が優先されます。
pdm use --venv <<project_name>>
必要なパッケージをインストールします。
pdm add Django pdm add uwsgi
切り替えた仮想環境にインストールされているか確認します。
ls -la /home/hoge/.venvs/<<project_name>>/bin
インストールしたパッケージを確認します。
pdm list
仮想環境のアクティベート
仮想環境をアクティベートして、bashなどのシェルで仮想環境を使えるようにします。
source ~/.venvs/<<project_name>>/bin/activate
仮想環境のデアクティベート
アクティベートした仮想環境から抜けます。
deactivate
仮想環境の削除
指定した仮想環境を削除します。
pdm venv remove <<project_name>>
仮想環境の一覧
指定した仮想環境を削除します。
pdm venv list
その他
指定されたパッケージを削除します。
pdm remove --venv <<project_name>>
指定されたパッケージをアップデートします。
pdm update requests
Install dependencies from lock file.
pdm install
Update package(s) in pyproject.toml.
pdm update
Synchronize the current working set with lock file.
pdm sync
Show the package information.
pdm -v show django
runを使うと、有効にした仮想環境でscriptが実行できます。
pdm run pdm run python -V pdm run which python pdm run python manage.py runserver 192.168.10.5:88
Comments