2011-12-25 1 views
2

私はプロジェクトを仮想ホストとして展開し、virtualenv内で提供しようとしています。 virtualenv内にインストールされたパッケージのインポートと使用は問題ありません。以下のビットは、サーバー上の失敗しかし:Apache仮想ホストがvirtualenvのbinディレクトリを含むようにPATHを設定するには?

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

は、私は次のエラーを取得する:

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

私はネット上で見つけたが、それらのどれも働いていないいくつかのことを試してみました。 CompilerFiltersubprocess.Popenを使用しているが、私はわからないので、私の推測がある、

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

しかし、それは動作しません:私はSetEnvの希望に満ちました。私はちょうどこのバーチャルホストためpyscssの実行ファイルのパスをハードコーディング避け、PATHbinディレクトリを持つことができますが、どのように

UPDATE:

Apacheのバージョンは、バージョンのmod_wsgi 2.2.17あるvirtualenvのバージョンは1.4.9ある、3.3あります。

答えて

1

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

/path/to/virtualenv/bin/pyscss 

それが非標準のプログラムのためのPATHに発見さに依存するため、過度に良い習慣ではありません。あなたが本当にその助言を無視したいとPATHがWSGIスクリプトファイルには、とにかく設定に依存している場合

の操作を行います。それだけのWSGI環境辞書にリクエスト変数ごとに設定されますよう

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

のsetenvディレクティブは動作しません。グローバルos.environを処理しません。

+0

グラハムに感謝します。最初の提案は意味がある、私はそれと一緒に行くよ。 – muhuk

0

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

多分それはと関連している:SetEnv does not allow PATH override

また、より詳細に自分の環境を投稿してください。 mod_wsgi、mod_fastcgiを使用していますか?

+0

こんにちは。バージョン情報を追加しました。 – muhuk

関連する問題