ti-enxame.com

Python & XAMPP no Windows: como?

Eu instalei no meu Win7x64 Xampp e Python 2.7.

Agora estou tentando obter o "poder" da Python ... como posso fazer isso?

Eu tentei com mod_python e mod_wsgi, mas o primeiro não existe para a minha versão do Python, e quando tento iniciar o Apache após a instalação do wsgi, ocorre um erro

< Directory "\x93C:/wsgi_app\x94"> path is invalid

Adicionei um espaço entre <e 'diretório' para tornar a string visível aqui.

Então ... Alguém sabe se existe um pequeno tutorial para instalar esses recursos?

Ou alguém tem a gentileza de me explicar passo a passo o que devo fazer?

Obrigado e desculpe se eu não sou tão capaz de me explicar.

Se você precisar de algo, por favor me pergunte.

10
Bonny1992

Sim, você está certo, mod_python não funcionará com Python 2.7. Portanto, mod_wsgi é a melhor opção para você.

Eu recomendaria o AMPPS como python está ativado por padrão com mod_python e python 2.5. Site do AMPPS

se você ainda quiser continuar,

Adicione esta linha no httpd.conf

LoadModule wsgi_module modules/mod_wsgi.so

Remova o comentário da linha no httpd.conf

Include conf/extra/httpd-vhosts.conf

Abra o arquivo vhost httpd-vhosts.conf e adicione

NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
    <Directory "path/to/directory/in/which/wsgi_test.wsgi/is/present">
        Options FollowSymLinks Indexes
        AllowOverride All
        Order deny,allow
        allow from All
    </Directory>
    ServerName 127.0.0.1
    ServerAlias 127.0.0.1
    WSGIScriptAlias /wsgi "path/to/wsgi_test.wsgi"
    DocumentRoot "path/to/htdocs"
    ErrorLog "path/to/log.err"
    CustomLog "path/to/log.log" combined
</VirtualHost>

Adicione as seguintes linhas em wsgi_test.wsgi

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]

Nota: Não crie o diretório de teste nos htdocs. Porque ainda não tentei isso. Essas etapas funcionaram para mim no AMPPS. :)

Em seguida, acesse 127.0.0.1/wsgi no seu navegador favorito. Você verá Hello World !.

Se você não vir, siga QuickConfigurationGuide

OR

Você pode adicionar essas linhas no httpd.conf

<IfModule wsgi_module>
<Directory path/to/directory>
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    allow from All
</Directory>
WSGIScriptAlias /wsgi path/to/wsgi_test.wsgi
</IfModule>
14
John D

O WSGI é muito melhor , mas pelo menos pesquisei no Google e tentei configurá-lo por dias sem sucesso. O CGI é menos eficiente, mas como a maioria das pessoas usa o Windows apenas para desenvolvimento, faz pouca/nenhuma diferença. É super fácil de configurar!

Método CGI:

  1. No xampp\Apache\conf\httpd.conf, procure esta linha: AddHandler cgi-script .cgi .pl .asp . Modifique-o para que fique assim: AddHandler cgi-script .cgi .pl .asp .py
  2. Na parte superior de cada script Python que você cria, defina o caminho para sua versão do Python. Por exemplo, se o seu estiver em C:\Python27, escreva: #!/Python27/python
  3. Coloque test exemplo de código de teste em xampp\cgi-bin e acesse localhost/cgi-bin/your-file.py

código de teste de amostra (alteração comentada python de acordo com o local em que você o instalou):

#!C:/Python27/python

print "Content-type: text/html\n\n"
print "<html><head><title>Hello World from Python</title></head><body>Hello World from a Python CGI Script</body></html>"

Eu testei isso no xampp 1.8.1 se algo não funcionar, leia:

fonte: http://elvenware.com/charlie/development/web/Python/Xampp.html

15
Tomas