Windows上では、Apache / mod_wsgiを持つvirtualenvのからのPythonを実行します
-
26-09-2019 - |
質問
私はWAMPサーバをセットアップしようとしています。私は正常に動作してApacheを持っている、と私は滞りなくmod_wsgiをインストールしました。
問題は、ある私は私のプロジェクトのために(virtualenvのを使用して)仮想環境を使用しています。だから、明らかに、mod_wsgiのはジャンゴの私のインストールを見つける問題を抱えている。
私はvirtualenvsとよく仕事へのmod_wsgiを得ることができる方法を理解しようとしています。ドキュメントには、これが不可能であると考えているようだ。
WSGIPythonHomeディレクティブは、UNIXシステムでのみ使用され、Windowsシステムでは利用できませんできることここから注。 Windowsシステム上のPython DLLの場所は、PythonはPythonライブラリ・ファイルを検索する場所を指示するものであるように思わためです。一つには、WindowsのメインのPythonのインストールの明確なベースライン環境の独立を作成することができますどのようにこの時点では知られていない。
:のmod_wsgi + virtualenvのドキュメントの
ん誰もこの作業を行う方法についていくつかのアイデアがありますか?
解決
あなたが何かをインポートする前に、あなたの.wsgiファイルにこれを追加することはPythonからプログラム環境をアクティブにすることができます。
時々、あなたがすることはできませんか、したくありません によって作成されたPythonインタプリタを使います virtualenvの。例えば、Aで mod_pythonのかmod_wsgiを環境、 唯一の通訳があります。
幸いにも、それは簡単です。あなたは使用する必要があります。 インストールするカスタムPythonインタプリタ ライブラリ。しかし、あなたのライブラリを使用するには ただパスがあることを確認する必要が 正しい。スクリプトが利用可能です パスを修正。セットアップできます 環境のように:
activate_this = '/path/to/env/bin/activate_this.py' execfile(activate_this, dict(__file__=activate_this))
このはのsys.pathを変更しても、します sys.prefixを変更するだけでなく、あなたを許します 既存のインタプリタを使用します。アイテム お使いの環境で最初に表示されます sys.pathに、グローバル項目の前に。 しかし、これは元に戻すことはできません 他の環境の活性化、または インポートされたモジュール。君は しようとするべきではない、例えば、 ウェブの前に環境をアクティブに 要求;あなたは1を活性化させる必要があります 可能な限り早期に、そして環境など その過程で、再びそれをしない。