Nickcheng.LOG

在天朝的每天都当最后一天吧!

Archive for the ‘python’ tag

使用pymssql备忘

leave a comment

最近需要用Python来操作SQL Server, 所以找来了一些库试用.

简单搜索了一下, 看到pymssql是被提及最多的, 所以就决定用他了. 使用过程中有些小的地方需要注意, 特此备忘一下. 也能让别人少走点儿弯路(说不定我这个反而是弯路? whatever…)

  • 我是在windows下使用的. 如果在import pymssql的时候出现DLL找不到的异常, 可以尝试把pymssql的egg解压缩为目录就好了.
  • 调用存储过程的方式:
    cur.execute(‘sp @param1=%s, @param2=%s’,(param1, param2))
  • 如果查询结果集中有ntext类型数据, pymssql不能正确处理. 可以在sql语句中进行类型转换.

其他功能类似的模块还有pyodbc, adodbapi, 不过我都没有试用.

Written by nickcheng

February 20th, 2010 at 9:10 pm

Posted in 俺的技术

Tagged with , , , , ,

mod_python和django使用需要注意python egg

leave a comment

不认识上面几个英文的朋友请忽略本文, 谢谢:)

昨天在配置Django的数据库的时候, 发现了一个奇怪的问题.

在我将数据库设置配置完成后, 在本地用manage.py runserver执行访问都没有问题, 但是放到服务器上用apache+mod_python的方式执行访问的时候, 就会报错. 而且更诡异的是每次报错都不一样. 我观察了一下, 发现基本就是两种错误在来回的报! 一个是说我的middleware有问题, 另一个说是在使用一些egg文件时有问题.

连忙上网搜了一圈, 找到了一些类型的情形, 大家的基本解决方案都指向了django网站的一个网页(看来还是官网好啊).

using eggs with mod_python

看完这个介绍以后, 终于明白了问题的所在,剩下的就是按步骤来做了! 不过这里还有一个小技巧.

报egg使用有问题的错误时, 错误信息中写的很详细, 大概意思是说因为我没有配置using eggs with mod_python 中所说的cache目录, 所以默认要使用”/.python-eggs”目录作为cache目录. 而我的服务器上并没有这个目录, 所以才会报错.

这样就简单了, 我就建一个这个目录呗, 再把权限一改, 再一试, 嘿嘿~~~齐活!

不想麻烦的朋友, 如果遇到这个问题能看到他需要的目录, 可以采用我的方法:)

Written by nickcheng

October 12th, 2007 at 5:03 pm

Posted in 俺的技术

Tagged with , , ,

初试Pycurl

leave a comment

今天调试爬虫的时候在网上找文章, 恰巧找到了Pycurl的介绍文章, 大概看了一下并浏览了项目主页, 发现这个东西真的挺好的, 也挺适合我的. 我应该考虑在爬虫里使用这个东东:)

supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling and more!

再看看人家的功能, 真是一个让人偷懒的东西啊! 这下子连代理服务器的功能都省了. 而且这个东东是用C写的, 效率自然也更高, 使用它? 何乐而不为呢?

顺手从项目主页拉下来一个win32的版本 [2]. 试了几个示例代码 [2], 还不错! 不过要想用好这个东西还是有一点门槛的! 因为Pycurl本身是libcurl的一个封装, 所以在使用pycurl的时候还是需要参考libcurl的文档的, 而那个文档又是针对c的, 这里就有那么一点曲线啦!

对于Pycurl的Curl对象, 那个setopt方法是个重头戏, 需要好好研究参考文档才能玩得转!

Written by nickcheng

April 11th, 2007 at 12:18 am

Posted in 俺的技术

Tagged with , ,

在Python2.5下安装Trac 0.11dev

leave a comment

搞定了Apache和Subversion以后, 准备搞定Trac.

照例是到网上搜了一大圈, 找了一堆的参考资料. 不过一篇一篇的看过以后发现所有的文章都是在讲基于Python 2.4的Trac安装, 我心里一悬, 也不知道这Python 2.5上安装会不会有问题! 先不管三七二十一, 比葫芦画瓢先!

于是开始准备一些必须的软件, 果不其然, 这一步就遇到了问题! 我找不到对应Python 2.5的ClearSilver. TNND, 真是出师未捷身先死啊! 不甘心……

继续在Trac官方网站翻阅资料……哈哈…功夫不负有心人, 被我找到了一篇”Trac with Python 2.5“. 这应该是Python 2.5下的东东了吧! 用劲看完了这份文档, 发现这讲的是更新潮的事情–安装正在开发的Trac 0.11dev版本.

想了一下, 自己也不是用Trac管理太重要的东西, 而且实在不行还可以一直跟着svn的trunk升级嘛! 于是乎, 下定了决心跟着dev版本走!

这0.11dev版本的一大好处是不再使用ClearSilver, 而是使用Genshi来取而代之, 这Genshi是有Python 2.5版本滴!!赞!

看到这里可别以为以后的道路都是平坦的. 这过程和人生是一样的, 一个坎坷接着一个坎坷……

按照官方文档, 我下载了对应版本的Genshi和Trac. 在安装Trac的时候又出问题了. 我最新Checkout出来的Trac说我下载的Genshi的版本低……ft…这还官方文档呢~~~~~

不怕, 咱再自己去Checkout最新的Genshi. 你要是以为这就好了的话, 那你就又错了! 这回Trac改口说我的Genshi版本太高了……我再次摔倒了…

那怎么办? 还好安装Trac的时候给的提示信息比较全. 看到Trac提示的信息说需要的Genshi版本不能高于Genshi 0.4dev-r510. 那好我就去Checkout 509版本的Genshi……这次终于好了…前面几个坎差点儿把我摔背过气去……

后面的康庄大道就好走多了. 安装了svn-python的绑定后就可以自己用trac-admin来建个工程, 再用tracd发布玩玩了.

最后配置一下apache, 用apache统一发布, 哈哈, 起活!

=======

安装步骤

  • 下载必须软件
    • Genshi 0.4 r509: svn co http://svn.edgewall.org/repos/genshi/trunk@509
    • Trac 0.11dev: svn co http://svn.edgewall.org/repos/trac/trunk
    • SVN的Python绑定: http://subversion.tigris.org/downloads/svn-python-1.4.3.win32-py2.5.exe
  • 安装
    • 安装Genshi
    • 安装SVN的Python绑定
    • 安装Trac
  • 配置Apache
    • 在conf中增加如下代码



SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir “d:/trac”
PythonOption TracUriRoot /trac

Written by nickcheng

March 29th, 2007 at 11:25 pm

Posted in 俺的技术

Tagged with , ,

Switch to our mobile site