如何在Wampserver中安装Python

17 投票
3 回答
48288 浏览
提问于 2025-04-17 07:02

我想在Windows上用Wamp或Appserv安装Python,应该怎么安装呢?它们可以一起运行吗?

3 个回答

12

这是我的回答:

  1. 首先,你需要从Python官方网站下载并安装Python。
  2. 然后把它安装到你的硬盘上,比如我把它安装在C盘,安装后路径会是(C:/Python27)。
  3. 接下来,创建一个Python文件(比如我们可以创建一个叫python.py的文件,在里面写代码)。

    #!C:/Python27/python  
    from os import *  
    from cgi import *  
    print "content-type: text/html\n\n"  
    print "<br><B>hello python</B>"
    
  4. 把这个文件保存为python.py,放在cgi-bin文件夹里。对我来说,WAMP是安装在C盘的,所以这个文件应该保存到C:\wamp\bin\apache\Apache2.2.11\cgi-bin。

  5. 确保你的Apache里安装了cgi_module。你可以通过点击系统托盘里的WAMP图标来检查,看看cgi_module旁边有没有勾。如果没有勾,就左键点击它,然后重启WAMP服务器。

  6. 打开你的本地服务器,检查这个网址(http://localhost/cgi-bin/python.py)。

21

你可以在本地运行Python应用程序。首先,去安装一下Python,然后你有两种方法可以选择:


方法一:使用原生Python服务器

1) 打开 CMD 命令窗口。

2) 输入: cd path/to/project/ (把这里的路径换成你项目的实际路径)。

3) 输入: python -m http.server 8080

4) 打开 http://127.0.0.1/,你就能看到你的项目了!这很简单。

__

方法二(不推荐,效果较差):使用Wamp、Xamp等

1) 打开 ...wamp\bin\apache\apacheXXXX\conf\httpd.conf,然后搜索 Options Indexes FollowSymLinks,在最后添加: ExecCGI(或者 Includes ExecCGI)。

2) 找到并确保 LoadModule cgi_module 这一行没有被注释掉。

3) 搜索 #AddHandler cgi-script .cgi,把前面的 # 去掉。然后在下一行添加:
AddHandler cgi-script .py

4) 找到这一行: DirectoryIndex index.php index.php3 index.html index.htm
在最后添加: index.cgi index.py
现在,重启Apache

5) 创建一个 sample.py 文件,内容如下(只需把 C:\Python34 的路径换成你安装的路径):

#!C:\Python34\python\python.exe
print("Content-type: text/html\n\n"); 
print("helloooooo")
#####---> for python Version 2.x, use: print "helloooooo"

附注: (A) 为了避免问题,不要把PYTHON安装在包含空格的路径中。 (B) 行首和 print(.. 之间不能有空格。

6) 重启WAMP。

就这样!!打开 http://localhost/sample.py!!


附注:在某些情况下,如果你在.py目录中使用.htaccess,可能需要在.htaccess中插入以下几行:
Options +ExecCGI
AddHandler cgi-script .py

23

在WampServer中添加Python支持其实挺简单的,和添加其他Apache模块差不多。只需要多做几个步骤,就能继续用WampServer的控制台来管理你的应用程序。

下载mod_wsgi Apache模块

你需要下载一个合适的mod_wsgi二进制版本。WSGI是用Python编写网络应用的推荐方法。你下载的二进制文件必须和你使用的Windows、Apache和Python版本相匹配。可以在这个网站找到当前版本的二进制文件:mod_wsgi binaries。注意:如果你对安全性有顾虑,最好自己从源代码编译mod_wsgi,或者只从可信的来源下载。

下载的二进制文件要放到Apache的模块目录里。比如,我下载的是mod_wsgi-3.4.ap22.win-amd64-py2.7.zip(Windows 7 64位,Python 2.7,Apache 2.2)。在我的电脑上,正确的目录是c:\wamp\bin\apache\Apache2.4.4\modules。

更新httpd.conf并刷新WampServer

接下来,你需要更新httpd.conf文件。这可以通过WampServer控制面板完成,选择Apache->httpd.conf菜单。会打开记事本(或你默认的编辑器)。

找到一段有很多LoadModule语句的地方。在这段的底部,添加一条LoadModule语句来加载mod_wsgi:

LoadModule wsgi_module modules/mod_wsgi.so

保存httpd.conf文件并退出记事本。

为了让WampServer知道你做了更改,你需要刷新一下。右键点击系统托盘中的WampServer图标,选择刷新。现在,当你查看控制面板中的模块列表(Apache->Apache Modules)时,应该能看到mod_wsgi。如果它没有被勾选,赶紧勾上。如果Apache没有自动重启,现在就从控制面板手动重启一下。

如果Apache启动不了,而你又确定上面的LoadModule语句没有写错,那很可能是你下载的mod_wsgi二进制文件和WampServer安装的版本不匹配。

将Apache连接到你的Python应用

这一步会根据你使用的应用框架(比如cherrypy、Django等)有所不同。我会提供一个非常基础的例子,确保一切正常;这个例子与官方的WSGI文档非常接近。

创建一个目录来存放你的WSGI应用。我创建了一个名为C:\code\wsgi的目录。在里面,创建一个Python模块,里面实现一个叫做'application'的函数。这将是当你的应用URL被调用时的入口点。

我把我的模块命名为wsgi.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]

接下来,你需要更新Apache的httpd.conf文件,让WSGI指向你的应用。在我的情况下,我在维护一个PHP网站的同时,用Python做一个新网站的原型。为了将两者分开,我在Apache中定义了一个虚拟服务器,监听不同的端口号。我还添加了IfModule指令,这样如果我通过WampServer控制面板禁用mod_wsgi,这些语句就会被忽略。

<IfModule wsgi_module>
    <VirtualHost *:8090>
        WSGIScriptAlias /myapp /code/wsgi/wsgi.py
        <Directory /code/wsgi>
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
</IfModule>

测试一下

通过WampServer控制面板重启Apache。如果一切正常,你应该可以在浏览器中输入

http://localhost:8090/myapp 

并看到“Hello, World!”的消息。

更新于2015年5月

mod_wsgi的Windows二进制文件的新版本使用whl文件格式打包。whl文件是Python PIP的“轮子”文件。它和ZIP格式兼容,所以你可以把文件重命名为.zip扩展名来提取mod_wsgi.so文件(从数据目录中)。

另外,你也可以运行'pip install (packagename).whl'来将mod_wsgi.so作为Python包安装。你需要找出Python提取mod_wsgi.so文件的位置,并在必要时将其复制到正确的地方。

我在最新版本的WAMP Server中使用了前一种方法。正确的文件是mod_wsgi-4.4.11+ap24vc10-cp34-none-win32.whl。文件名中的'cpNN'部分应该和你安装的Python版本匹配。

撰写回答