私は仕事で走っているフットボールチップコンテストのための暇なときにdjangoアプリケーションを書いています。私はこの時間を賢く使い、virtualenv、pip、パッケージング、django 1.3、そして簡単に再配布可能なアプリケーションを作成する方法に慣れると思いました。ここまでは順調ですね。
梱包部分は私次第です。たとえば、GitHubのdjangoアプリの多くは、ほとんど同じ方法で(ほぼ)バンドルされています。例として、django-uni-formsを使用します。
私が想定しているのは、MANIFEST.in
とsetup.py
が、pipがその仕事をするために必要な唯一の必須要素であるということです。あれは正しいですか?私の仮定が間違っている場合、他にどのようなコンポーネントが必要ですか?
必要なパッケージファイルは一般に生成されますか、それとも手動で作成されますか?依存関係を記述してからインストールすることもできますか?私のアプリケーションはに依存しdjango-uni-forms
ておりrequirements.txt
、依存関係のインストールに使用したアプリ内のファイルにリストされています。しかし、それはパッケージングシステムが処理できるものですか?
アプリケーションをパッケージ化して、pipがアプリケーションと依存関係をインストールできるようにするために実行する必要がある手順は何ですか?
はい、MANIFEST.in
かつsetup.py
十分なものでなければなりません。
このブログ投稿には、このトピックに関する優れた情報が含まれています。Django再利用可能アプリのパッケージ化
そして、これは私を大いに助けてくれたもう一つの良い、詳細な概要です:Python Packaging User Guide
特に静的ファイル(テンプレート)を含めるためのヒントは、最初は明らかではない可能性があるため重要です。
はい、必要なパッケージを指定setup.py
して、アプリのインストール時に自動的に取得することができます。
例えば:
install_requires = [
'django-profiles',
'django-uni-forms',
],
明らかに、依存関係が定義されている場所が2つありますが、必ずしもこれらの情報が重複していることを意味しているわけではありません。setup.pyとrequirements.txtです。
この設定により、パッケージはを介してインストール可能になりますpip
。
ピエールがコメントで述べたように、Djangoの公式ドキュメントには関連セクションもあります:アプリのパッケージ化
そして、この「完全に不完全な」ガイドがあります。これは、パッケージのパッケージ化とPyPIへのアップロードに関する優れた概要を実際に提供します。愛の労働を共有する:PyPI Quick And Dirty
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加