Permalink
Browse files

Update

  • Loading branch information...
1 parent 2668230 commit 8c3e307c4bf24dc432d3ff205c86d3c77004b2ba @imkerberos committed May 31, 2012
Showing with 3 additions and 0 deletions.
  1. +3 −0 _posts/tips/2012-05-30-py2exe-pyqt.md
View
3 _posts/tips/2012-05-30-py2exe-pyqt.md
@@ -16,6 +16,8 @@ py2exe 打包注意事项
- 如果包含了 WebKit, 还需要在 py2exe `options``includes` 部分包含 `QNetwork`, 否则 WebKit 不能运行.
- 如果包含了 twisted, 由于 twisted 依赖 `zope.interface`, 需要包含 `zope.interface`, 而 `zope.interface` 包名不是标准的 Python 模块名, 导致 py2exe 找不到 `zope` 模块. 解决办法是直接修改系统文件, 在 Python 的 site-packages/zope 目录下创建空的 `__init__.py` 文件. :) 比较 dirty.
- 如果使用了 email 模块, 需要在 `packages` 中包含 `email` 模块.
+- 如果目标机器不安装 VC 的运行库, 需要自己拷贝 VS 2008 的运行库.
+- 即使自己拷贝 VS2008 的运行库, Qt 的 Plugin (包括图片, phonon) 也不会正确加载, 一切的罪魁祸首是 xp 的 embedded manifest 文件,这个问题困惑了我好久! QtWebKit 不能显示jpeg, gif 等图片, phonon 不能发声, 不能显示视频等. 解决办法是: 由于使用自己拷贝的 VS2008 运行库, 需要在每个 plugin 的目录下拷贝一份, 包括 `imageformats``phonon_backend`.
源代码例子如下:
@@ -46,6 +48,7 @@ py2exe 打包注意事项
data_files += [
('Microsoft.VC90.CRT', glob(r'C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\*.*')),
('imageformats', glob(r'C:\Python27\Lib\site-packages\PyQt4\plugins\imageformats\*.*')),
+ (r'imageformats\Microsoft.VC90.CRT', glob(r'C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\*.*')),
]
import py2exe
setup (

0 comments on commit 8c3e307

Please sign in to comment.