2022年10月27日木曜日

pypiから取得したパッケージをローカルに持ってきてローカルのパッケージを参照するように変更する方法

pypiから取得したパッケージをローカルに持ってきてローカルのパッケージを参照するように変更する方法

概要

ローカルでパッケージを開発したい場合に Pipfile の参照先を Pypi ではなく local に変更する方法を紹介します

環境

  • Ubuntu 18.04
  • Python 3.10.2
  • pipenv 2022.1.8

既存パッケージの削除

pypi から取得したパッケージを一度削除します

  • pipenv uninstall hoge

Pipfile を編集してローカルからインストールするようにする

path を指定することでローカルからインストールできます

  • vim Pipfile
[packages]
hoge = {path="/home/pkg/hoge"}

再度インストール

あとは再度インストールします

  • pipenv install -d

もしパッケージ側を修正した場合は再インストール必要がある

パッケージ側を修正した場合は再度インストールする必要があります

もし面倒な場合はシンボリックリンクに手動で切り替えても OK です

  • pipenv --venv
  • cd /home/pkg/.local/share/virtualenvs/app-Yn-xfOlh/lib/python3.10/site-packages
  • rm -rf hoge
  • ln -s /home/pkg/hoge/hoge hoge

ただこの場合でもパッエージ側にパッケージが追加された場合は再度インストールする必要がある

パッケージ側で pipenv install や poetry add などが発生した場合は再度インストールし直しましょう

パッケージ側が poetry を使っている場合には editable モードは使えない

path を指定する際に editable というオプションが使えるのですがパッケージ側が poetry で作成されている場合以下のようなエラーになりました

hoge = {editable=true, path="/home/pkg/hoge"}
(A "pyproject.toml" file was found, but editable mode currently requires a setuptools-based build.)

0 件のコメント:

コメントを投稿