0

pythonbrewがmod_wsgiファイルによって取得されていない場合、構成は次のようになります。

import os
import sys
import site

site.addsitedir('/home/bharal/.pythonbrew/pythons/Python-2.7.2/lib/python2.7/site-packages')
sys.path.append ('/home/bharal/public_html/dumpstown')

os.environ['DJANGO_SETTINGS_MODULE'] = 'dumpstown.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

そして、私が使用したいpythonのpythonbrewバージョンはここにあります:

/home/bharal/.pythonbrew/pythons/Python-2.7.2/lib/python2.7/site-packages

そして私のpythonbrewインストールはここにあります:

/home/bharal/.pythonbrew/

ubuntu(2.6)に付属しているデフォルトのPythonバージョンではなく、このバージョン(2.7.2)を使用するようにmod_wsgiに指示するにはどうすればよいですか?

サーバーを実行すると、次のようなエラーが発生します。

[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] mod_wsgi (pid=18694): Exception occurred processing WSGI script '/home/bharal/public_html/dumpstown/dumpstown/apache/dumpstown.wsgi'.
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]   File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/wsgi.py", line 250, in __call__
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]     self.load_middleware()
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]   File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py", line 39, in load_middleware
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]     for middleware_path in settings.MIDDLEWARE_CLASSES:
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]   File "/usr/local/lib/python2.6/dist-packages/django/utils/functional.py", line 276, in __getattr__
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]     self._setup()
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]   File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 42, in _setup
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]     self._wrapped = Settings(settings_module)
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]   File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 89, in __init__
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]     raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] ImportError: Could not import settings 'dumpstown.settings' (Is it on sys.path?): No module named gravatar.templatetags

ログからわかるように、サーバーはまだpython2.6を見ています!! なんで?pythonbrewを開始したので、入力するpythonバージョンが2.7.2であり、必要なすべての設定とパッケージがインポート可能であることがわかります。

以下の回答に示されているように、更新します。mod_wsgiは、使用するように指示するPythonをにしません。実際、特定のpythonを使用するように指示することはできません。これを行う唯一の方法は、コンパイルされていないwsgiファイルをダウンロードし、必要な特定のpythonバージョンでコンパイルして、コンパイルされたwsgiを使用することです。

私の他の質問を参照してくださいエラー:必要に応じて、いくつかの手順とtutesへのリンクについて、コマンドがrc =65536pythonおよびmod_wsgiで失敗しました。結局、私は2.7に対してコンパイルしませんでした(私の2.6は問題なく、pythonbrewコンパイルを機能させるのは難しすぎました)

4

1 に答える 1

1

その特定のエラーは、使用されている Python のバージョンとは関係ありません。使用する:

sys.path.append ('/home/bharal/public_html') sys.path.append ('/home/bharal/public_html/dumpstown')

mod_wsgi で特定のバージョンを使用するには、そのバージョンに対してソース コードからコンパイルするか、正しいバージョンに対してコンパイルされた mod_wsgi のバイナリ パッケージを見つけます。

于 2012-07-04T06:10:33.760 に答える