3

mod_wsgi で動作する wsgi アプリケーションを取得しようとしています。wsgiref.simple_serverをデバッグ環境として使用する前に実行しました。ここで、Apache httpd を使用して、同じポートで静的ファイルをロードすることと統合し、より本番環境に適した環境を提供するように移行したいと考えています。

設定した httpd.conf ファイルは次のようになります。

<VirtualHost *:80>

    DocumentRoot /var/www/

    ErrorLog /var/www/log/error_log

    LogLevel debug

    WSGIScriptAlias /app /var/www/python/resource/rest.py

    <Directory /var/www/python/>
            Order allow,deny
            Allow from all
    </Directory>

    <Directory />
            Order allow,deny
            Allow from all

            RewriteEngine On
            # Some rewrites go here

    </Directory>

</VirtualHost>

このセットアップでは、メイン アプリケーション ファイルである rest.py ( の下http://myhost/app) にアクセスできますが、モジュールへのインポート ( from module1 import functionmodule1 が rest.py と同じディレクトリの下にある場合など) はImportError.

これは、ある種の環境変数を設定する必要があることに関係していると思われますが、メインのアプリケーション メソッドに追加/var/www/pythonsys.pathましたが、機能しません。これに関するヘルプやポインタは本当にありがたいです。

ありがとう!

4

1 に答える 1

6

rest.py は /var/www/python または /var/www/python/resource の下にありますか? このディレクトリを sys.path に追加すると、私の知る限りうまくいくはずです。文字列定数を使用するよりも、次のようにすることをお勧めします。

sys.path.append(os.path.dirname(__file__))

これは、将来別の場所にデプロイすることにした場合でも機能するはずです。

于 2012-11-05T20:52:37.630 に答える