1

HerokuにデプロイするPythonアプリを作成しています。Herokuのガイドによると、パッケージ要件をPiprequirements.txtファイルにリストする必要があります。このガイドでは、パッケージをローカルにインストールしてから、実行pip freeze > requirements.txtして凍結された要件ファイルを書き込むように指示しています。

ただし、Herokuへのデプロイで使用したいパッケージの1つをローカルにインストールできません。私のオペレーティングシステムと互換性がありません。

requirements.txtでは、Herokuに適したこのパッケージを含めるにはどうすればよいですか?

私が考えることができる唯一の方法は手でそれを書くことです-しかし、問題のパッケージはそれ自身の多くの依存関係を持っているので、これは退屈でしょう。その上、これはパッケージマネージャーのポイントを打ち負かします。


RubyアプリをHerokuにデプロイする場合、Bundlerを使用するとこれが簡単になります。私のGemfileに

gem "pg", :group => :production
gem "sqlite3", :group => :development

次に、コマンドbundle installはフリーズされたバージョンリストを書き込みますGemfile.lock(に類似requirements.txt)。'production'グループの下にリストされているパッケージはインストールされませんが、バージョン管理されたパッケージの一貫したリストはフリーズします。

例:GemfileおよびGemfile.lock

4

2 に答える 2

1

複数のファイルを持ち、それらを異なる名前で呼ぶことができますが、Heroku は requirements.txt を想定しています。たとえば、dev の場合、dev_requirements.txt を維持できます。

ローカルで実行できます:

$ pip freeze > dev_requirements.txt

など、そして

$ pip install -r dev_requirements.txt

Heroku が実行されます。

$ pip install -r requirements.txt
于 2012-12-13T21:39:30.643 に答える
0

不可能です。pip https://github.com/pypa/pip/issues/747に報告された問題

于 2012-12-13T23:20:53.560 に答える