PipenvからPoetryへお引越しするお話
Pipenvのlockがなかなか終わらないんですが...という不満がチームメンバーから噴出しまして、
これを解消してくれそうなPoetryへお引越しする!
というお話です。
よく見るお話ですね
前提
- プライベートなPyPIインデックスサーバがある
- バージョンの記述方法は変えない
-
packages
,dev-packages
それぞれお引越し - スクリプトもできればお引越し
引っ越しツール
poetry#1701 や poetry#663 を見ると、
dephell や ワンライナー の方法があるようですが、
上の前提を満たすような感じではありませんでした。
ということで、 pipenv-poetry-migrate というツールを作りました
殴り書いた感じなのでテストがないですが、今後書いていきます
引っ越し手順
Step 0: poetry
, pipenv-poetry-migrate
のインストール
poetry
は公式が推奨する方法でインストールしてください。
pipenv-poetry-migrate
は下記のコマンドでインストールします。
$ pip install -U pipenv-poetry-migrate
Step 1: pyproject.toml
を作成する
まずはお引越し先となる pyproject.toml
を作成します。
$ poetry init
依存パッケージは no
と答えて空っぽにしておいてください。
Step 2: お引越しスクリプト実行
$ pipenv-poetry-migrate -f Pipfile -t pyproject.toml
何も出力されませんが、 pyproject.toml
に依存パッケージやスクリプトなどがお引越しされます。
Step 3: lockファイルを作成する
$ poetry lock
プライベートなPyPIインデックスサーバを使っていても、設定がお引越しされているので上手くいくはずです。
pre-release
なパッケージがある場合は失敗するかもしれません。その場合は、pyproject.toml
を修正してください。
Step 4: 仮想環境に依存パッケージをインストールする
$ poetry install
正常に終了すれば、仮想環境が構築完了です。
まだお引越しは終わってない
お引越しはPipfileだけではなく他にもあります。
- tox.ini
- Dockerfile
- CI/CD設定
だいたいこの辺りでしょうか。忘れずに編集しましょう。
ここらへんはプロジェクトやリポジトリの状態によって変わると思うので、端折ります
おしまい
賛否いろいろある気がしますが、色々方法があるうちの1つの紹介でした。
pipenv-poetry-migrate はお気に召して頂けたら、どんどん使っていただければと思います。
雑なIssue, PRなどもお待ちしております!
Author And Source
この問題について(PipenvからPoetryへお引越しするお話), 我々は、より多くの情報をここで見つけました https://qiita.com/yhinoz/items/e4004c9d9bec2d962006著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .