1

mod_wsgi のインストールが完了しましたが、Pyramid アプリケーションの起動に問題があります。

CentOS 5.8でpython 2.7、Apache 2.2.3、mod_wsgi 3.4を使用しています

ここに私のhttpd.configファイルがあります

WSGISocketPrefix run/wsgi

<VirtualHost *:80>
 ServerName  myapp.domain.com
 ServerAlias myapp
 WSGIApplicationGroup %{GLOBAL}
 WSGIPassAuthorization On
 WSGIDaemonProcess pyramid user=apache group=apache  processes=1 threads=4 \
   python-path=/var/wsgi_sites/site-packages
 WSGIScriptAlias / /var/wsgi_sites/myapp/apache.wsgi

<Directory /var/wsgi_sites/myapp>
  WSGIProcessGroup pyramid
  Order allow,deny
  Allow from all
</Directory>

  LogLevel debug
  ErrorLog /var/log/httpd/myapp_error
</VirtualHost>

site-package、python-eggs、および myapp フォルダーの Apache 所有権を付与しました。

WSGIアプリケーションappache.wsgiを作成するために使用しているモジュールには、次のコードが含まれています

import os
os.environ['PYTHON_EGG_CACHE'] = '/var/wsgi_sites/python-eggs'

from pyramid.paster import get_app
application = get_app('/var/wsgi_sites/myapp/development.ini','main')

Apache を再起動してアプリケーションにアクセスしようとすると、次のエラーが表示されます

mod_wsgi (pid=14842, process='pyramid', application=''): Loading WSGI script '/var/wsgi_sites/myapp/apache.wsgi'.
mod_wsgi (pid=14842): Target WSGI script '/var/wsgi_sites/myapp/apache.wsgi' cannot be loaded as Python module.
mod_wsgi (pid=14842): Exception occurred processing WSGI script '/var/wsgi_sites/myapp/apache.wsgi'.
Traceback (most recent call last):
File "/var/wsgi_sites/myapp/apache.wsgi", line 4, in ?
from pyramid.paster import get_app
File "/var/wsgi_sites/site-packages/pyramid-1.3.2-py2.7.egg/pyramid/__init__.py", line 1, in ?
from pyramid.request import Request
File "/var/wsgi_sites/site-packages/pyramid-1.3.2-py2.7.egg/pyramid/request.py", line 
class Request(BaseRequest, DeprecatedRequestMethodsMixin, URLMethodsMixin,
    ^
SyntaxError: invalid syntax

request.py ファイルを見てみましたが、構文エラーはありません。

4

2 に答える 2

5

多くの場合、構文エラーが発生すると、前の行が原因です。ピラミッドソースを見ると、前の行は次のとおりです。

@implementer(IRequest)

これはクラスデコレータです。クラスデコレータはバージョン2.6でPythonに追加されました。CentOS5.8でのPythonのデフォルトバージョンは2.4です。

解決策は次のいずれかです
。1。最新バージョンのPythonでOSを使用するか
、2。Pyramidアプリケーションがバージョン2.7を使用していることを確認します。これには、他のアプリケーションで使用されるシステムのデフォルトのPythonインストールに加えて、 Python 2.7のインストールが含まれ、そのままにしておく必要があります。

2.7をインストールすることを選択した場合、次のようなことを行います。

$ wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
$ tar xf Python-2.7.3.tar.bz2
$ cd Python-2.7.3
$ ./configure --prefix = / usr / local
$ make && make altinstall
于 2013-02-04T19:17:39.857 に答える
0

エラーに記載されている 2 つの異なる wsgi ファイルが表示されます

/var/wsgi_sites/project_name_api/apache.wsgi

/var/wsgi_sites/myapp/apache.wsgi

貼り付けた httpd.conf に project_name パス参照が表示されません。

それを見直すことから始めてみてはいかがでしょうか。問題が解決しない場合は、さらに役立つ追加情報を投稿してください。

于 2013-02-04T19:20:08.947 に答える