[解決済み] Pythonアプリケーションをpipでインストールできるようにするにはどうしたらいいですか?
質問
私は、職場で行っている足で稼ぐコンテストのために、空き時間に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パッケージングユーザーガイド
特に、静的ファイル(テンプレート)を含めるためのヒントは、最初は明らかでないかもしれないので、重要です。
また、必要なパッケージは
setup.py
に必要なパッケージを指定することができ、これらはアプリのインストール時に自動的に取得されます。
例えば
install_requires = [
'django-profiles',
'django-uni-forms',
],
明らかに依存関係が定義されている場所が2箇所ありますが、必ずしもこれらの情報が重複しているわけではありません。 setup.py vs requirements.txt
このセットアップで、あなたのパッケージは以下の方法でインストールできるはずです。
pip
.
Pierre がコメントで指摘したように、Django の公式ドキュメントにも関連するセクションがあります。 アプリのパッケージング
そして、パッケージングとPyPIへのパッケージのアップロードに関する素晴らしい概観を与えてくれる、この"complete"ガイドもあります。 あなたの愛の労働を共有する。PyPI クイック&ダーティ
関連
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] pipで特定のバージョンのパッケージをインストールする
-
[解決済み] pipと要件ファイルを使って、特定のパッケージをアップグレードするにはどうすればよいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] 小数点以下1桁を取得する[重複]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでのAWS Lambdaのインポートモジュールエラー
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
-
[解決済み] Django filter queryset __in for *every* item in list