1. ホーム
  2. python

[解決済み] Pythonアプリケーションをpipでインストールできるようにするにはどうしたらいいですか?

2023-01-30 06:24:35

質問

私は、職場で行っている足で稼ぐコンテストのために、空き時間にdjangoアプリケーションを書いています。私はこの時間を賢く使い、virtualenv、pip、パッケージング、django 1.3、および簡単に再配布できるアプリケーションを書く方法についてスピードアップすることを考えました。今のところ、とても良い感じです。

私はパッケージングの部分まで来ました。例えば GitHub にある多くの django アプリは、ほとんど (だいたい) 同じようにバンドルされています。私は django-uni-forms を例にしてみます。

私が行っている仮定は MANIFEST.insetup.py は、pipが仕事をするために必要な唯一の部分です。これは正しいのでしょうか?私の仮定が誤っている場合、他にどのようなコンポーネントが必要なのでしょうか?

必要なパッケージングファイルは一般に生成されますか、それとも手作業で作成されますか?依存関係を記述して、それをインストールすることもできますか? 私のアプリケーションは django-uni-forms に依存しており、私はそれを requirements.txt ファイルにリストアップされていますが、これはパッケージングシステムが処理できることなのでしょうか?

pip がアプリケーションと依存関係をインストールできるようにするために、どのようなステップを踏む必要がありますか?

どのように解決するのですか?

はい。 MANIFEST.insetup.py で十分でしょう。

このブログの記事には、このトピックに関する良い情報があります。 Django の再利用可能なアプリをパッケージ化する

そして、もう一つの良い、詳細な概要があり、とても役に立ちました。 Pythonパッケージングユーザーガイド

特に、静的ファイル(テンプレート)を含めるためのヒントは、最初は明らかでないかもしれないので、重要です。

また、必要なパッケージは setup.py に必要なパッケージを指定することができ、これらはアプリのインストール時に自動的に取得されます。

例えば

    install_requires = [
        'django-profiles',
        'django-uni-forms',
    ],

明らかに依存関係が定義されている場所が2箇所ありますが、必ずしもこれらの情報が重複しているわけではありません。 setup.py vs requirements.txt

このセットアップで、あなたのパッケージは以下の方法でインストールできるはずです。 pip .


Pierre がコメントで指摘したように、Django の公式ドキュメントにも関連するセクションがあります。 アプリのパッケージング

そして、パッケージングとPyPIへのパッケージのアップロードに関する素晴らしい概観を与えてくれる、この"complete"ガイドもあります。 あなたの愛の労働を共有する。PyPI クイック&ダーティ