Pipenv: pipenvでホイールを構築しますか?

作成日 2018年03月07日  ·  3コメント  ·  ソース: pypa/pipenv

ハッシュ検証を利用しながら、 Pipfile.lockですべての依存関係のホイールを生成できるようにしたいと思います。 11.1.2より前では、次の方法でこれを実現できました。

pipenv lock -r > reqs.txt
pip wheel -r reqs.txt

_(#1417はこのワークフローでは問題がありましたが、それ以外の場合は機能しました)_

11.1.2では、要件スタイルの出力からハッシュが削除されました。これは、(afaik)は、ロックファイルからハッシュ検証済みホイールをビルド/ダウンロードする方法がないことを意味します。

ユースケースは、オフラインインストールまたはサーバー上のコンパイル/開発ツールなしのインストール用にPythonモジュールをパッケージ化することです。 ホイールは、最小限のPython環境で構築、配布、およびインストールできます。


この機能をプロジェクトに含めることを検討しますか? そうでない場合は、このワークフローを再度サポートする方法はありますか?

最も参考になるコメント

誰かがここで解決策を探す場合に備えて、それは非常に簡単です( pipenv内部が変更されないと仮定します):

from pipenv.utils import convert_deps_to_pip
with open('Pipfile.lock') as f:
    deps = json.load(f)['default']
# remove local project which wouldn't have a hash
for k, v in list(deps.items()):
    if v.get('path') == '.':
        del(deps[k])
path_to_requirements_file_with_hashes = convert_deps_to_pip(deps)

全てのコメント3件

現時点ではこれについての計画はありません

ただし、これはpipenv-wheelsツールにとって絶好の機会のように思えます。

誰かがここで解決策を探す場合に備えて、それは非常に簡単です( pipenv内部が変更されないと仮定します):

from pipenv.utils import convert_deps_to_pip
with open('Pipfile.lock') as f:
    deps = json.load(f)['default']
# remove local project which wouldn't have a hash
for k, v in list(deps.items()):
    if v.get('path') == '.':
        del(deps[k])
path_to_requirements_file_with_hashes = convert_deps_to_pip(deps)
このページは役に立ちましたか?
0 / 5 - 0 評価