2

プロジェクトを仮想ホストとしてデプロイし、virtualenv内で提供しようとしています。virtualenv内にインストールされたパッケージをインポートして使用することは問題ではありません。ただし、サーバーで次のビットが失敗します。

COMPRESS_PRECOMPILERS = (
    ('text/x-scss', 'pyscss --output {outfile} {infile}'),
)

次のエラーが発生します。

Caught FilterError while rendering: /bin/sh: pyscss: not found

ネットで見つけたいくつかのことを試しましたが、どれもうまくいきませんでした。私は期待していたSetEnv

SetEnv PATH /path/to/virtualenv/bin:$PATH

しかし、それは機能しません。私の推測では、CompilerFilterがを使用しているためですがsubprocess.Popen、よくわかりません。

pyscss実行可能ファイルのパスをハードコーディングせずに、この仮想ホスト専用のディレクトリbin作成するにはどうすればよいですか?PATH

アップデート:

Apacheのバージョンは2.2.17、mod_wsgiのバージョンは3.3、virtualenvのバージョンは1.4.9です。

4

2 に答える 2

1

必要な「pyscss」スクリプトへのフルパスを使用する必要があります。

/path/to/virtualenv/bin/pyscss

非標準プログラムのPATHにあることに依存することは、あまり良い習慣ではありません。

そのアドバイスを本当に無視して、とにかくPATH設定に依存したい場合は、WSGIスクリプトファイルで次のようにします。

import os
os.environ['PATH'] = os.environ['PATH'] + ':/path/to/virtualenv/bin'

SetEnvディレクティブは、WSGI environディクショナリのリクエスト変数ごとに設定するだけで、グローバルos.environを処理しないため、機能しません。

于 2011-12-26T04:48:33.237 に答える
0

Apacheのバージョンは何ですか?

多分それは関連しています:SetEnvはPATHオーバーライドを許可しません

また、環境について詳しく投稿してください。mod_wsgi、mod_fastcgiを使用していますか?

于 2011-12-25T06:39:17.233 に答える