Python & XAMPP on Windows: how to?

前端 未结 2 696
太阳男子
太阳男子 2020-12-23 18:36

I have installed on my Win7x64 Xampp and Python 2.7.

Now I\'m trying to get the \"power\" of Python language... how can I do it?

I\'ve tried with mod_python

相关标签:
2条回答
  • 2020-12-23 18:59

    WSGI is a lot better, but at least I googled and tried to set it up for days without success. CGI is less efficient, but as most people use windows for development only, it makes little/no difference. It's super easy to set up!

    CGI method:

    1. In xampp\apache\conf\httpd.conf look for this line: AddHandler cgi-script .cgi .pl .asp. Modify it so it looks like this: AddHandler cgi-script .cgi .pl .asp .py
    2. At the top of each Python script you create, set the path to your version of Python. For instance, if yours is in C:\Python27 write: #!/Python27/python
    3. Put test sample test code in xampp\cgi-bin and access localhost/cgi-bin/your-file.py

    sample test code(change commented python path according where you have it installed):

    #!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>"
    

    I've tested this in xampp 1.8.1 if something doesn't work read tihs:

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

    0 讨论(0)
  • 2020-12-23 19:00

    Yes you are right, mod_python won't work with Python 2.7. So mod_wsgi is the best option for you.

    I would recommend AMPPS as python environment is by default enabled with mod_python and python 2.5. AMPPS Website

    if you still want to continue,

    Add this line in httpd.conf

    LoadModule wsgi_module modules/mod_wsgi.so
    

    Uncomment the line in httpd.conf

    Include conf/extra/httpd-vhosts.conf
    

    Open vhost file httpd-vhosts.conf and add

    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>
    

    Add the following lines in 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]
    

    Note : Don't make the test directory in htdocs. Because I haven't tried that yet. These steps worked for me in AMPPS. :)

    Then access 127.0.0.1/wsgi in your favorite browser. You will see Hello World!.

    If you don't see, follow QuickConfigurationGuide

    OR

    You can add these lines in 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>
    
    0 讨论(0)
提交回复
热议问题