1

canopy_cliPython(2.7)、フラスコ、apache2、mod_wsgi、および Enthought Canopy 仮想環境 ( Canopy に付属のコマンド ライン インターフェイスを使用して作成) を使用して Web サイトを作成しようとしています。私は以前にこれを行ったことがあります.dreamhostのライブバージョンは、passenger_wsgiの悪ふざけで問題なく動作するようです.

自宅の古いラップトップで開発サーバーを作ろうとしています。同じようにvenvを設定しました。この仮想環境を使用するために WSGI ファイルに何を挿入すればよいかわかりません。通常の仮想環境では、env/bin/ ディレクトリに「activate_this.py」スクリプトがありますが、Canopy venv にはありません。

dreamhost では、wsgi ファイルで次の構文を使用することをお勧めします。

INTERP = os.path.join(os.environ['HOME'], 'project', 'env', 'bin', 'python')

if sys.executable != INTERP:
    os.execl(INTERP, INTERP, *sys.argv)
sys.path.append(os.getcwd())

これは Passenger_wsgi では問題なく動作しますが、開発サーバーで mod_wsgi を使用して実行すると、エラーが発生します。

スクリプト ヘッダーの早期終了: dev.wsgi

/home/user/project/env/bin/python: ファイル 'mod_wsgi' を開けません: [Errno 2] そのようなファイルまたはディレクトリはありません

したがって、私の選択肢は、virtualenv を使用して開発サーバー上に通常の仮想環境を作成するか (通常の方法でアクティブ化できる activate_this.py スクリプトが含まれる)、自宅のマシンで Passenger_wsgi をセットアップする方法を学ぶことだと思います。

つまり、誰かが以前にこれを成功させたことがあり、wsgi スクリプト/フラスコ サイトを Canopy 仮想環境で実行する方法を教えてもらえない限り?

4

1 に答える 1

2

読んでください:

Apache の下の mod_wsgi モジュールは Python を組み込みシステムとして使用します。os.execl() を実行しても意味がありません。os.getcwd() を使用してもあまり意味がありません。作業ディレクトリがソース コードの場所ではないためです。

とにかく、Apache/mod_wsgi で仮想環境をセットアップする方法については、そのリンクをお読みください。

于 2014-02-10T00:44:12.240 に答える