人在囧途——Java程序猿学习Python
引言
LZ之前其实一直对python都很好奇,只是苦于平时没有时间去了解它,因此趁着51假期这个机会,便迫不及待的开始了自己的探索。作为一个标准的Java程序猿,在了解python的过程当中,LZ遇到了很多囧事,接下来LZ就一一给大家说道说道。本文纯属看个乐子,非python教学。
囧事一:eclipse插件安装篇
由于LZ习惯了使用eclipse进行开发,因此对python的研究,还是希望可以在eclipse上进行试验。那么第一件事,自然是安装python的eclipse插件,于是百度、google各种搜索引擎开始进入LZ的脑海。
看着搜索结果,LZ不禁感叹大神们的厉害,原来如此简单,只需要像下面这样就可以。
好吧,于是LZ开始等待...慢慢的,十分钟过去了,它依然没有反应...又十分钟过去了,是的,它依然没有反应,囧。
半个小时之后,LZ终于忍不住了,开始选择第二种办法,离线安装。下载一个ZIP包,直接解压到eclipse的相应文件夹,于是pydev终于出现了。
功夫不负有心人,它终于出现了,有点找到失散多年的妹妹的感觉。接下来的过程还比较顺利,下载python运行环境,将python.exe配置到相应的interpreter上面去即可。
一个小时的折腾,LZ终于成功运行了那个具有划时代意义的程序,它叫“Hello World!”。
囧事二:变量声明篇
既然“Hello World”已经成功,那么接下来的过程应该是非常顺利的。不过没想到的是,接下来发生的事,让LZ更加抓狂。最根本的原因就是LZ写下来了这样一个程序。
它竟然报错了!大概意思LZ倒是看明白了,说字符串不能和int类型比较。于是LZ便将程序改成以下这样。
它竟然编译错误了!最可悲的是,这提示有点牛B,LZ只能说“!&……#&!……@&#*……!@&#”。于是牛B的LZ想到了无敌的一招,就是下面这招。
它竟然又报错了!强制类型转换都不好使了,这python还真不好搞。不过这时LZ灵机一动,看到了input()的用法,便比葫芦画瓢改了一下程序,结果它终于成功了。
无敌的python果然与众不同,习惯与Java完全不同,当初研究C++的时候不能说是顺风顺水,但也算是手到擒来,因为两者在某种程度上还是比较相似的。不过这python就不一样了,很多用法都已经截然不同。
囧事三:连接mysql数据库
完成了上面那个高端大气上档次的程序,LZ开始向新的目标前进。于是不自然的想到了数据库,LZ平时自己写Java程序都是使用mysql,于是也想使用python操作一下数据库。回想起Java操作mysql的方式,想必python也需要下载一个p包吧。
不过结果有点出乎LZ的预料,竟然需要安装一个叫mysqldb的东西。这是什么玩意?于是LZ开始抱着必胜的决心寻找它,结果终于在某USA的网站找到了它,本来以为是个exe的安装包,结果却是一大堆文件,看起来还需要自己build的节奏,这让LZ有点慌了神。
不要慌,下载下来再说。于是得到了下面这样一个东西。
幸好这玩意看起来还不是那么的难理解,想必应该是需要使用python解释器去执行setup.py就可以。最后发现,还需要加入一个build的参数。于是LZ便开始执行命令,结果得到了下面的错误。
其实在得到这个错误之前,LZ已经得到了很多错误,一开始是一个编译错误,LZ修改了setup_windows.py文件。后来又是一个导入module的错误,LZ又修改了setup_common.py文件。
直到得到这个错误以后,无论LZ如何猜测,都没有解决这个问题。因为它报错的地方是在python的lib文件当中,而不是mysqldb的文件。一时之间,LZ有点慌乱了,开始求助最后的大神google。不过结果依旧失败,往往在最后关头能帮助LZ的google,今天看来也不好使了。
这可怎么办?LZ猜测这种错误很可能是版本引起的问题,因为LZ隐约记得LZ下载的叫mysqldb2,可是LZ使用的是python3啊。会不会跟这个有关系呢?
说干就干,在百度输入mysql python3的关键字,最终还是让LZ找到了一丝蛛丝马迹,有一个地址叫mysql for python3。这是一个github的地址,LZ果断用git将这个下载下来。仔细一看,它的目录与刚才那个mysqldb2如出一辙,但其实仔细看,也有少许不同。
不管它了,管它哪里不同呢,继续执行刚才的命令。果然,这一次虽然有很多警告,但是build成功了。接着就是install,不出所料,依然还是成功,这让LZ欣喜万分。浪费了差不多一个小时,终于搞定了。
于是迫不及待的在eclipse当中输入一个标准的程序,来验证一下LZ的mysqldb是否安装成功了。可是没想到的是,它依然报错了。
从错误提示上来看,就像Java一样,是刚才安装的mysqldb没有被成功引入。于是LZ想到了在配置python解释器的时候,有一大堆东西让LZ选择,而刚才install的时候,就是在Lib下面安装了一个mysqlXXX的东西。于是LZ就找到了这里。
这下LZ的程序终于编译通过了,怀着激动的心情,LZ选择了python run,结果令人振奋。
终于打印出来了,这里面的数据就是LZ自己的mysql数据库当中存储的。到此,LZ短期对python的研究就暂时告一段落了,以后如果有机会的话,LZ会用python写一些实用的小工具,以便于自己在平时的工作当中使用。
小结
现在说来简单,其实在真正尝试的过程当中,还是遇到了不少问题。主要原因也和LZ想在windows下使用python有关系,这个时候就体现出linux的优势了,在linux上安装一些东西,总是那么的轻松。
这本来只是一篇流水文,不过LZ在这里还是想说,很多猿友在研究一些东西的时候,遇到困难就退缩了。到了最后,大部分人都会情不自禁的打开11GAME的快捷方式麻痹自己,从此无法自拔。但其实有的时候,只要你再往前一小步,就可以看到胜利了。最重要的是,这可以锻炼你解决问题的能力,因为在工作当中,很多事情都是你克服了无数奇葩的问题才得以解决的。