2011-01-06 18 views
12

私はWAMPサーバーを設定しようとしています。私はApacheが正常に動作しており、mod_wsgiをインストールしました。WindowsでApache/mod_wsgiを使用してPythonをvirtualenvから実行する

問題は、自分のプロジェクトに仮想環境(virtualenvを使用)を使用しています。だから明らかに、mod_wsgiはDjangoのインストールを見つけるのに問題があります。

私はvirtual_vsでうまく動作するようにmod_wsgiをどのように得ることができるかを理解しようとしています。ドキュメントはこれが不可能だと思えるようです:

WSGIPythonHomeディレクティブはUNIXシステムでのみ使用でき、Windowsシステムでは使用できません。これは、Windowsシステムでは、Python DLLの場所が、PythonがPythonライブラリファイルを探す場所を指定するように見えるからです。現時点では、どのようにしてWindows上でのメインのPythonインストールとは別個のベースライン環境を作成できるかは分かりません。

ここから:mod_wsgi + virtualenv docs

誰でもこの作業を行う方法について考えていますか?

+2

Windows上のWSGIPythonHomeに関するコメントは実際には間違っています。制限は解除されました。おそらくmod_wsgi 3.X(わかりません)。コメントは削除されました。 –

答えて

12

他のものをインポートする前に、環境をプログラムでPythonから.wsgiファイルに追加することができます。

virtualenv's docsから:

時々、あなたがすることはできませんか virtualenvのによって作成されたPythonインタプリタを使用 にしたくありません。たとえば、 mod_pythonまたはmod_wsgi環境では、 にはインタープリタが1つしかありません。

幸いにも、簡単です。 ライブラリをインストールするには、 カスタムPythonインタプリタを使用する必要があります。しかし、ライブラリを使用するには のパスが であることを確認してください。スクリプトを使用して のパスを修正することができます。あなたのようなセットアップ 環境をすることができます。これは

activate_this = '/path/to/env/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 

のsys.pathとさえ 変更はsys.prefixを変更するだけでなく、あなた は、既存のインタプリタを使用できるようになります。あなたの環境内の項目 は、グローバル項目の前にsys.pathに最初に と表示されます。 ただし、他の環境の 、またはインポート済みのモジュール を元に戻すことはできません。あなた は、たとえば、 ウェブの前に環境をアクティブにしようとするべきではありません。 リクエスト;できるだけ早く1つの 環境を有効にし、 はそのプロセスで再度実行しないでください。

+0

これはよく見えます、私はそれを試してみましょう。しかし、それは私のシステムでは、 "virtualenvを使用して作成されたものではなく、"メイン "Python interepereterを使用するように見えますか?これは私のシステムでPythonの1つのバージョンしか使用できないということですか? (これはほんの小さな問題に過ぎません)。 –

+0

インタープリタmod_wsgiをApacheに組み込みますが、sysを確認します。パスはvirtualenvにインストールされたライブラリで正しく設定されています – albertov

+2

検索エンジン - ここに実装されています:http://thecodeship.com/deployment/deploy-django-apache-virtualenv-and-mod_wsgi/あなたのwsgi.pyでパス変数を有効にして設定するには – Mendhak

関連する問題