再現実験:pipのない仮想環境でpip install
pipのないvirtualenvを作る
code:shell
% pyenv local 3.11.4
% python -m venv venv --upgrade-deps # virtualenvを入れる
% source venv/bin/activate
(venv) % pip install virtualenv
(venv) % virtualenv --no-seed -- rye-like
(venv) % source rye-like/bin/activate
(rye-like) % which python
/.../rye-like/bin/python
(rye-like) % python -m pip list # 単に pip list だと pyenv が反応してしまう
/.../rye-like/bin/python: No module named pip
PYTHONPATH環境変数にpipのディレクトリを指定
code:rye-like仮想環境の続き.sh
% mkdir temp
% ln -s ~/.rye/self/lib/python3.11/site-packages/pip temp/pip
% PYTHONPATH=$PWD/temp python -m pip list # 上ではエラーになったコマンド
% PYTHONPATH=$PWD/temp python -m pip --version
pip 23.1 from /.../temp/pip (python 3.11)
code:unlinkして.sh
% ln -s $PWD/venv/lib/python3.11/site-packages/pip temp/pip
% PYTHONPATH=$PWD/temp python -m pip --version
pip 23.3.2 from /.../temp/pip (python 3.11)
pip-tools
venvに入れた
$PWD/venv/bin/pip-compile
$PWD/venv/bin/pip-sync
これだとvenv側が同期する
PYTHONPATH=$PWD/temp $PWD/venv/bin/pip-sync --python-executable $PWD/rye-like/bin/python
rye-like側が同期
コマンド全ては分かっていない(--pip-args以降)
PYTHONPATH=$PWD/tempは必要。省くと「ModuleNotFoundError: No module named 'pip'」