如何在Wampserver中安装Python
我想在Windows上用Wamp或Appserv安装Python,应该怎么安装呢?它们可以一起运行吗?
3 个回答
这是我的回答:
- 首先,你需要从Python官方网站下载并安装Python。
- 然后把它安装到你的硬盘上,比如我把它安装在C盘,安装后路径会是(C:/Python27)。
接下来,创建一个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>"
把这个文件保存为python.py,放在cgi-bin文件夹里。对我来说,WAMP是安装在C盘的,所以这个文件应该保存到C:\wamp\bin\apache\Apache2.2.11\cgi-bin。
确保你的Apache里安装了cgi_module。你可以通过点击系统托盘里的WAMP图标来检查,看看cgi_module旁边有没有勾。如果没有勾,就左键点击它,然后重启WAMP服务器。
打开你的本地服务器,检查这个网址(
http://localhost/cgi-bin/python.py
)。
你可以在本地运行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
在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版本匹配。