Проблема Установите и запустите psycopg2 + Windows + Apache2 + mod_wsgi - PullRequest
1 голос
/ 29 января 2010

1) Я пытаюсь настроить новую веб-среду для размещения кода python + psycopg2. Вот мои шаги:

2) Скачать http://modwsgi.googlecode.com/files/mod_wsgi-win32-ap22py26-3.0.so

3) Скопируйте mod_wsgi-win32-ap22py26-3.0.so в C: \ Program Files \ Apache Software Foundation \ Apache2.2 \ modules, и переименуйте его в mod_wsgi.so

Добавьте следующие новые строки в C: \ Program Files \ Apache Software Foundation \ Apache2.2 \ conf \ httpd.conf

LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias /wsgi/ "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/wsgi/"

4) Сохраните файл с именем C: \ Program Files \ Apache Software Foundation \ Apache2.2 \ htdocs \ wsgi \ myapp.py со следующим содержимым:

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

5) Доступ с использованием http://localhost/wsgi/myapp.py

6) Установить http://www.stickpeople.com/projects/python/win-psycopg/psycopg2-2.0.13.win32-py2.6-pg8.4.1-release.exe

7) Если я изменю содержимое файла на

import psycopg2

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

Я получу

ImportError: Нет модуля с именем psycopg2

Как я могу сказать apache, я установил модуль psycopg2 в C: \ Python26

8) Я запускаю следующий автономный скрипт, чтобы показать, что psycopg2 установлен.

import psycopg2

print "Hello, World!"

Я запускаю его, используя

C:\Documents and Settings\yan-cheng.cheok\Desktop>mypython.py
Hello, World!

Кажется, моя среда python в порядке.

1 Ответ

1 голос
/ 29 января 2010

Я могу решить проблему, переместив скрипт на python за пределы htdocs

WSGIScriptAlias /wsgi "C:/wsgi/"

<Directory "C:/wsgi">
    AllowOverride None
    Options None
    Order deny,allow
    Allow from all
</Directory>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...