6

まず、これを行う方法はないと思いますが…でも、そこには賢い人がたくさんいるので、お願いしたいと思いました!:)

HerokuでのDjangoアプリのセットアップに関するRandallDeggesによる優れた記事/投稿を見つけました(インターネットアーカイブリンク)。要件をさまざまなファイル(common.txt、dev.txt、prod.txtなど)に分割することについて彼が言っていることが本当に好きです。

これは本番環境のHerokuでうまく機能しますが、HerokuでDev / QAサイトも維持しており、Dev/QAで使用するprodには本当に必要のないパッケージがいくつかあります。最良の例はdjango-debug-toolbarです。現在、これは本番環境のrequirements.txtにあり、実行時にsettings.pyのインストール済みアプリなどに追加する必要があるかどうかをDEBUG設定を確認して動的に決定します。

これは問題なく動作します...しかし、prodにインストールすることさえ気にしないことができれば素晴らしいでしょう。私が望んでいるのは、pipが条件付きインクルードを許可する要件ファイルを取得できるようにすること(なぜPythonファイルを取得できないのですか?)、またはHerokuがどの要件ファイルを指定する構成設定をサポートすることです使用します。誰かがこれを達成する方法を見つけましたか?それとも希望的観測ですか?

4

3 に答える 3

5

これを調べましか?

Python アプリケーションに setup.py ファイルが含まれていて、requirements.txt ファイルが含まれていない場合、python setup.py development を使用してパッケージをインストールし、依存関係を解決します。これは、distribute または setuptools で最適に機能します。distutils を直接使用するプロジェクトはインストールされますが、リンクされません。バージョン バンプが発生するまで、モジュールは更新されません。既に要件ファイルがあり、この機能を利用したい場合は、要件ファイルに次を追加できます。

-e .

次に、python2.6 に importlib を条件付きでインストールするの推奨事項に従います。

于 2012-08-22T18:38:54.917 に答える
1

buildout にも同様のニーズがあり、そこで実装しました。buildout から pip に移行しているので、いくつかの条件に基づいていくつかのさまざまな要件ファイルを使用するために、このスクリプトを作成しました。これは、os/arch またはいくつかの環境変数または好きなものに基づくことができます。粗雑ですが、私にとっては効果的です。

https://gist.github.com/pombredanne/72130ee6f202e89c13bbを参照してください。

于 2014-08-01T10:21:30.257 に答える
0

はい、希望的観測です。pip 要件ファイルは非常に単純です。文字通り、すべての pip はpip installファイルの各行の先頭に追加するだけなので、条件などは不要です。環境ごとに個別の要件ファイルを用意するのは良い考えですが、開発/QA サイト用のバージョンも用意しないのはなぜでしょうか?

とはいえ、とにかくこれは少しアカデミックだと思います。パッケージをインストールするだけでは何も害はありません。たとえば、実稼働環境でも django-debug-toolbar パッケージがインストールされているかどうかは問題ではありません。実稼働インスタンスは実際にはそれを使用しないため、数キロバイトのドライブ スペースを占有することを除けば、問題ではありません。 .

個人的には、私は常に要件ファイルを 1 つだけ持っており、そこには Requirements のみを入れています。つまり、これらはサイトが文字通りそれなしでは実行できないパッケージです。django-debug-toolbar、ipython など。必要なときに手動でインストールするだけです。

于 2012-08-22T18:36:26.960 に答える