Linux下配置Apache服务器运行Python script

这里不讲Apache和Python的安装。安装方式可以直接是apt-get install或者用新立得,或者去他们网站下载最新的自己进行编译安装。

安装好后,打开/etc/apache2/下的httpd.conf文件,输入“AddHandler cgi-script .cgi .py”。

跟在Windwos下配置一样,ExecCGI也是需要加入,否则一样会碰到Forbidden问题。解决办法是:
找到/etc/apache2/sites-available目录,或自己定义的目录,然后修改里面的default文件,找到

<Directory /var/www/>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

在Options FollowSymLinks MultiViews后面加上ExecCGI (或”+ExecCGI”都可)。

Windows下配置Apache以便在浏览器中运行Python script的CGI模式

在前面的我的一篇文章中 “Windows XP下的Python 首次安装配置和使用”谈到当想在Apache服务器下运行Python script的时候,发现Apache的mod_python版本还不支持Python 2.6更别说3.0.1了,只有2.5之下的,折腾着卸载和安装,最后还没搞定,就先搁一边了。

现在因为已经安装了2.6的Python,以及支持2.6的Eric4,就不想再重新安装2.5来继续配置Apache下mod_python了。

后来发现了一篇文章Running Python as CGI in Apache in Windows,讲述以CGI模式代替mod_python来运行python script。还有这篇Python for Windows

做法是:

  1. 打开httpd.conf,找到”#ScriptInterpreterSource Registry“,移除前面的注释# (如果找不到这行,就自己添加进去)
  2. 找到“Options Indexes FollowSymLinks”这句,在后面加上”ExecCGI“。(那个”Indexes“最好也能去掉,因为如果不去掉的话,目录下面没有index.html这种文件,就会显示出目录列表下的所有文件,所以有安全漏洞问题。如果去掉Indexes,而且没有index.html文件的话,就会显示一个Forbidden页面)
  3. 找到”AddHandler cgi-script .cgi“,在后面加上 .py。如果没有这句,可以自己添加 “AddHandler cgi-script .py”
  4. 重新启动Apache即可 (有的时候restart会导致Apache死掉,所以碰到这种情况的人可以stop先再start)

然后创建一个test.py script,

print "Content-type: text/html"
print ""
print "<html><head></head><body>"
print "Hello World"
print "</body></html>"

注意第二句print “”不能少,如果没有这句,会引起一个 “500 Internal Server Error” 错误。

在浏览器中运行http://localhost/test.py,Hello World两个字被输出后表明运行正常。

另外,有些错误提示如下:

  • 没有添加ScriptInterpreterSource Registry,会出现500 Internal Server Error错误。
  • 没有添加ExecCGI,会出现403 Forbidden You don’t have permission to access /test.py on this server
  • 没有添加AddHandler cgi-script .py,那内容就会以text文本式样显示在浏览器中。

  1. 添加ScriptInterpreterSource Registry的用意是让Windows用Registry来找到Python的安装地方。
  2. ExecCGI是让python script可以运行在任意目录下面,因为Apache默认是让cgi script运行在cgi-bin目录下。而我把test.py放到htdocs下运行就会出现403 Forbidden的问题。所以需要加上ExecCGI,这样就可以在htdocs下运行.py script了。但是ExceCGI会有安全漏洞的问题。用FastCGI会安全一些。但是前提是需要安装上FastCGI才可以。
  3. CGI模式比mod_python模式要慢。所以以后有机会在别的电脑上再试试mod_python模式吧。

Eric4 – Qt-Designer的启动问题

当使用Eric4创建了一个.ui,然后启动的时候,出现下面一个错误提示:

could not start Qt-Designer. Ensure that it is available as \bin\designer.exe.

这个designer.exe是在目录”C:\Python26\Lib\site-packages\PyQt4\”下的。而Eric4中是去启动bin下面的designer.exe,

根本找不到bin这个目录,所以当然也就启动不了desinger.exe,才会出现错误提示。

尝试了把C:\Python26\Lib\site-packages\PyQt4\designer.exe加入到PATH中,还是出现错误。

后来GOOGLE了一下,发现在Python26目录下创建一个bin目录,然后把designer.exe复制到里面,就可以解决这个问题。

同理还需要复制的有assistant.exe,linguist.exe。

这种方法暂时解决了这个问题,只是觉得单纯的复制.exe到这个新目录中,那么调取的只是这个新目录bin下的.exe文件。而这个文件需要别的文件的时候,那时候就应该会出错吧,因为它毕竟不是在C:\Python26\Lib\site-packages\PyQt4\下面的,所以无法得知别的文件的路径。

但毕竟现在暂时解决了问题,所以等以后别的问题出现再说吧。

Eric4 – Python的一款IDE安装配置

Eric4是一款开源的Python IDE,看到有人介绍说这个不错,就下载来试了一下,官方网站是http://eric-ide.python-projects.org/

最新的版本是eric4-4.4-snapshot-20090419.zip,稳定版是eric4-4.3.3.zip,还有插件也是分稳定版和最新版的。

如果想支持中文的话,需要下载相应的插件eric4-i18n-zh_CN.GB2312-4.4-snapshot-20090419.ziperic4-i18n-zh_CN.GB2312-4.3.3.zip

还需要下载的有:

其中Qt有167MB之巨。但并非必须下载。有PyQt就可以了。

接下来进行安装:

首先确保Python2.4版以上已经安装,再安装PyQt,我安装的是snapshot 4.5版,会在C盘下创建一个新目录Qt,里面包含了Python和Ruby的api。

然后再安装Eric4,先解压缩到任意地方,把那个中文包插件也压缩,把目录i18n里面的两个文件eric4_zh_CN.GB2312.qm和eric4_zh_CN.GB2312.ts复制到刚刚解压缩出来的Eric4里的一个目录i18n里,然后双击Eric4主目录下的install.py即可。Eric4会自动把文件复制到你的Python目录下,在C:\Python26\Lib\site-packages\eric4\里

安装好后,你可以双击eric4下面的eric4.py或eric4.pyw来启动Eric4。这两个文件的区别是,前者会打开一个cmd窗口,后者没有。

初次打开Eric4,一个配置窗口会首先出现,这里可以简单的配置一下(或者以后在Settings – Preferences中配置也可以):

在Eidtor下面,

点击APIs,勾选上”Compile APIs automatically”,选择Language为”Python”,点击Add from installed APIs,选择eric4.api或其它你需要的APIs。然后点击下面的”Compile APIs”,这里会需要点时间。结束后点Apply。

然后点击Autocompletion,里面的三个都勾选上。

然后再点击QScintilla,选”from Document and API files”。

Apply 然后 OK。

配置好后,就可以进行使用Eric4了。

Windows XP下的Python 首次安装配置和使用

Windows下的Python安装还是比较方便的,下载一个.exe文件,然后很快就可以安装好。

如果使用自身带的IDLE编辑器,直接就可以使用了。但它的方便对我来说仅限于此。(只是对我来说的)

看了好几个文章介绍不同的Python编辑器或IDE,一开始选择的是PythonWin(选择这个主要是因为当初在学校的时候老师教了点Python,用的就是这个,可惜当初没去学Python,一心钻研在PHP和其它东东上)

PythonWin的选择还要跟你安装的Python版本一样才可以,否则安装不了。(麻烦的开始,呵呵)

因为一开始我装的Python是最新的3.0.1,PythonWin没有这个版本的,有2.6和2.5的。。

只好卸载了Python3.0.1,然后重新下载2.6版,安装。再下载PythonWin2.6版的,安装。

不过PythonWin安装也是很简单,直接一路next就可以了。

安装好后,打开PythonWin,在提示符>>>后面输入print “Hello World”,然后回车,不出错误的话,下面就会显示出来Hello World。

或者新建一个script,选择File – New – Python Script,在script里输入 print “Hello World”,保存一下先,然后按F5运行,在刚开始的>>>提示符窗口中就会出现Hello World。(如果没有先保存,运行的时候会提示错误)

好,一个简单的Python环境就设好了,可以创建.py脚本了。

如果想在浏览器中运行.py脚本,需要配置一下Apache服务器来支持Python,需要mod_python插件。

当去Apache网站准备下载一个的时候,发现竟然没有支持2.6版本的。。。我晕。。只有2.5的,还是两年前做的。。

这个项目已经停止更新两年了么。。

没办法,重新卸载2.6的Python和PythonWin,然后再去下载2.5的,和mod_python,再重新进行安装。

不过在浏览器中打开.py的脚本的时候无法正常解析。

这个时候又卸载又安装的搞的头大,就没心情继续下去,准备暂时把这个缓一下,先把Python的教程读完再说。