10

Webアプリ(フラスコベース)用のPythonパッケージを作成しようとしていますが、既知のディレクトリにいくつかのファイルをインストールしたいと思います。

たとえば、flaskは、統合サーバー(貼り付けベース)を実行しているときに、現在のパッケージ内のディレクトリtemplatesとディレクトリを見つけようとします。staticしかし、本番環境では、これらのディレクトリをのようなより具体的な場所にインストールしたいと思いvirtualenv/share/package-name/{static,templates}ます。そうでなければ、それらはlib/python-2.x/...適切ではないと思われる場所になります。

data_filesのパラメータを使用してファイルをインストールしようとしましたsetup.pyが、ツリー全体には役に立たないようです(error: can't copy 'xxx': doesn't exist or not a regular file)。

この状況での適切な解決策は何ですか?

4

1 に答える 1

3

できることは、仮想環境ファイルと静的ファイルをネイティブパッケージ(.debまたは.rpm)にパッケージ化してから、これらを好きな場所に配置できるようにすることです。私はこれについてブログ投稿をここに書きました。これはfpmと呼ばれる便利な小さなrubygemを使用しており、静的ファイルをpythonパッケージから分離していませんが、fpmコマンドの最後に別のパスマッピングを追加することで可能になります。

    fpm -s dir -t deb -n food-truck -v 0.1 -d "python,python-dev,postgresql" /home/ubuntu/food_truck-build/=/home/ubuntu/foodtruck.com <path to static files>=<destination of static files>

fpmを使用して、nginx構成などの他の構成ファイルを指定することもできます。しかし、それはあなた次第であり、展開の柔軟性が少し低下することを意味する場合があります。

お役に立てば幸いです。

于 2014-01-15T16:11:23.617 に答える