Categories: Python | Tags: | Views: 365

 

接触Python,被Tkinter吸引。

因为项目要求,从LAMP(Linux + Apache + MySQL + PHP)转战至XAPPD(自己乱取的,纯属娱乐,Windows/Linux + Apache + PostgreSQL + Python + Django)。

以前只是瞄过Python,但并未写过Python的东东。一直觉着Perl和Python其实是差不多的东西。当然大家都有自己鼓吹的一套。比如Perl会说它是正则表达式的鼻祖(事实上也是如此),Python则说Perl的语法晦涩难懂,自己语法清晰等等。包括Jquery鼓吹地说用链式写法改变javascript的编码习惯等等,各有一套说辞。但实际上,其实优缺点明白人心知肚明。至于你想用哪一套,那正是所谓萝卜白菜,各有所爱。

回归正题吧,看官们可以纯粹把此文看作是牢骚文。也许是编码习惯的改变,也许是平台的问题(我用Perl没出问题啊,呵呵)。情况是这样的:

上面提到我转战XAPPD,实属被转战。我仍然忠实于LAMPP。其中有一个重要的原因,那就是因为LAMPP有apachefriends提供的套装XAMPP,一键安装+配置。但是XAPPD得一个一个安装,一个一个配置,中间还不能出错。安装完成之后,我不想让apache和pgsql开机就启动,所以就想要一个这样的控制面板。

apache&pgsqlapache&pgsql1

看核心编程看到Tkinter那一块的时候就心动了,于是动手,就拿Python就当练手。

其他方面都还好,包括Tkinter的排版和事件。但是就是有字符串让我淡腾了。

执行Pgsql的start,restart,status,stop的命令行字符串经过我淡腾的调试,最后通过的Python代码:

1
2
3
4
5
6
pgData          = '"D:\Program Files"\PostgreSQL\8.4\data'
pgsqlExe        = r'D:\"Program Files"\PostgreSQL\8.4\bin\pg_ctl.exe -D ' + pgData
pgsqlStatusCmd  = pgsqlExe + ' status'
pgsqlStartCmd   = pgsqlExe + ' start'
pgsqlStopCmd    = pgsqlExe + ' stop'
pgsqlRestartCmd = pgsqlExe + ' restart'

以下几种情况均报错:

D:\Program 不是内部或外部命令,也不是可运行的程序或。。。。

1. pgData前加r的

2. pgsqlExe中双引号引用整个pg_ctl路径的

3. pgsqlExe中双引号引用D:\Program Files的

以下这种情况,运行status时不报错,但是运行start的报错:

pgData的双引号仅引用Program Files

pg_ctl报错说未知的模式,它把pgData中的Program Files给拆开了,D:后的\被吃掉了。。。

不就是跑个命令吗,至于设这么多关卡。。。

牢骚一下,话说回来,要是在*nix下就没有这样的问题了。

 

这篇文章来自 迷途知返(PWWANG.COM), 转载请注明出处。 版权说明

1 trackbacks

  1. ucukenider Trackback | 2010/03/25
;) :| :x :twisted: :roll: :oops: :o :mrgreen: :lol: :idea: :evil: :cry: :arrow: :P :D :?: :? :) :( :!: 8O 8)

你可以使用@somebody:开头, 来邮件通知somebody你回复了他的留言(用户名区分大小写).