追风逐月

关注网络赚钱、网赚经验、网赚工具、SEO、国外主机信息

推荐使用

订阅追风逐月博客feed
订阅到google 订阅到哪吒
订阅到鲜果 订阅到抓虾
* 更多订阅本站方式请看 订阅帮助

Posts Tagged ‘python’

终于解决”dynamic module does not define init function (initlibxml2)”问题

By 追风逐月 • Aug 1st, 2007 • Category: 技术开发

Py2exe和libxml2真是一个让人又爱又恨的东西。特别和python结合起来,时不时就给你来点问题。
因为要发布到没有安装过python的机器上,所以使用了py2exe来打包应用程序。以前一直都好好的,最近一次打包却出现了
dynamic module does not define init function (initlibxml2)
的错误,想想最近曾经更新过libxml2,于是恢复到旧的版本,还是不行。
Google了一下,找到几个方法,但都是似懂非懂的。
折腾半天,最近总算是弄明白了,原来还是py2exe的问题:
由于程序使用打包的方式,打包运行后和直接运行.py程序的区别是sys.path不同了,原来版本py2exe打包后
len(sys.path)=1,但现在可能是py2exe什么时候升级过,变成了len(sys.path)=2了,也就是说:
PLAIN TEXT
PYTHON:

sys.path=[‘E:\\bot\\src\\dist’,‘E:\\bot\\src\\dist\\bot2.exe’]

这样的话,每次加载libxml2的时候,都会先查找dist,再查找exe本身,而dist目录下正好包含了libxml2.dll,而这是一个非python化的动态库,当然就报错了
知道了原因,解决起来就方便了,在应用程序头上加上
PLAIN TEXT
PYTHON:

if len(sys.path)>1:

sys.path.insert(0,sys.path[-1])

print sys.path

将调用路径换一下就可以了。



py2exe 0.66的”zlib not available”问题

By 追风逐月 • Apr 24th, 2007 • Category: 技术开发

一直使用py2exe打包python工程,昨天照往常一样打包准备发布,却发现生成的exe文件不能用了。
提示如下:
decompress data; zlib not available
Traceback (most recent call last):
File “bot2.py”, line 8, in ?
zipimport.ZipImportError: can’t decompress data; zlib not available
赶紧google了一番,看来遇到这样问题的不少,但没有很好的解决方法。
根据网上的提示,反复尝试,发现只要去掉setup.py中的”compressed”: 1,就可以正常的生成exe文件。也就是说不能使用文件压缩功能,看了一下,生成的文件比原来大了不少,很是不爽。但确乎是找不到什么好的方法了。
突然想到,最近曾经将py2exe升级为0.66版本,会不会是这个原因呢?于是将其恢复回0.65,发现竟然可以使用原来的setup文件生成压缩的exe文件。
看来,升级要谨慎,版本高未必就是东西好。
刚刚又打包了一个com server的py程序(就是因为这个升的级),发现生成的exe出错了,但使用0.66版本却是正常的。这该如何是好呢。



用python编写com server程序

By 追风逐月 • Apr 19th, 2007 • Category: 技术开发

因为同事工作上需要使用到htmltidy(一个开源的用于规正html代码的工具。用来对html代码进行格式化,效果非常好),但平时使用的是delphi,虽然其主页上提供了delphi的封装包,但是可能是版本比较旧的缘故,无法处理繁体中文和日文。
我看了一下,上面有phthon的封装包,于是试了一下,发现能很好的处理多国语言,于是就想起写一个com server让他调用.
用python实现com非常简单,具体实现可以参考《Python Programming on Win32》,这是一本介绍python window编程,非常经典的书籍。
这里我介绍一下实现步骤:

下载并安装Python wrapper for TidyLib,因为该库依赖于ctypes库,所以您可能还需要安装ctypes库
下载并安装pywin32
实现起来很简单,代码如下:PLAIN TEXT
PYTHON:

#–coding:utf8–

# pytidycom.py

#

# A contrived sample Python server that demonstrates

# wrapping, unwrapping, and passing IDispatch objects.

 

# Import the utilities for wrapping and unwrapping.

from win32com.server.util import wrap, unwrap

 

import win32com.client

import tidy

 

# Although we are able to register our Parent object for debugging,

# […]



发现一个包括N多O’Reilly book电子书籍的好地方

By 追风逐月 • Apr 18th, 2007 • Category: 网络随笔

查找《OReilly - Python Programming on Win32.chm》,找到了这里
很酷的效果,很好的资料。



Django 0.96 chm帮助文档

By 追风逐月 • Apr 14th, 2007 • Category: 技术开发, 网站建设

最近学习Django,经常需要查看文档。老是到官方网站查询,有时候速度比较慢,也不太方便。于是花了点时间编译了这份文档。
文档结构参考官方网站。
点击这里下载:django96_help.chm
该文档使用rst2chm生成,参考了limodou老兄的《使用rst2chm.py将reStructuredText转化为chm文档》
顺便把limodou的Django Step by Step编译了一份.点击这里下载:django_stepbystep.chm