py2exe打包运行后出错,请问如何解决

shakaqrj 2009-09-04 04:36:57
没用"bundle_files"这个选项就没问题,用了之后报错
ImportError: MemoryLoadLibrary failed loading XXXX.pyd
XXXX.pyd是我用boost+vs2005做的一个dll文件
...全文
699 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wudiliusha 2010-11-18
  • 打赏
  • 举报
回复
打包成一个exe文件我觉得还是用pyinstall来的方便,我尝试用py2exe大宝成一个文件,可以打包,但文件运行不了,后来用pyinstall很棒

http://hi.baidu.com/pythonhome/blog/item/ff28afde7050a7d68c102953.html
shakaqrj 2009-10-16
  • 打赏
  • 举报
回复
不用pyd了,现在可以
mrshelly 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 shakaqrj 的回复:]
是runtime error,r6034
然后是日志文件中的ImportError: MemoryLoadLibrary failed loading XXXX.pyd
[/Quote]

还有相关的 dll 文件..
dll 文件放到你生成的 .exe 文件文件夹内就行了.

比如 pymssql 需要的 pymssql.pyd 以及 ntwdblib.dll

nietsche 2009-09-10
  • 打赏
  • 举报
回复
py2exe打包并不包含所有.dll(动态链接库),比如非常重要的:MSVCR71.dll(C运行库);MSVCP71.dll(估计你是缺少该库函数);不同版本及系统可能有所不同。
by the way: pyinstall 打包却不会有这个问题,如果你用pyinstall打没问题,则可以肯定是缺少库函数了,或者你看程序运行是否无误,则也很可能是打包时,缺少系统文件(py2exe打包最后会提示你有些动态库是没有包含进去的,你看系统下是否有?)。
Semigod 2009-09-08
  • 打赏
  • 举报
回复
按我说的方法去做就一定没有问题。disutil会自动帮你处理好extension 的。你所需要做的就是改好我给你的那几行代码,把内容换成你的extension相关的文件及名称等
shakaqrj 2009-09-08
  • 打赏
  • 举报
回复
该拷的都拷了
因为第一次我去掉bundle_files,打包一次,这下dist下面有许多文件
不删除,加上bundle_files,再次打包,原先dist下的文件都存在,只是打包后的exe文件替换了
运行时出错
shakaqrj 2009-09-08
  • 打赏
  • 举报
回复
是runtime error,r6034
然后是日志文件中的ImportError: MemoryLoadLibrary failed loading XXXX.pyd
mrshelly 2009-09-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 shakaqrj 的回复:]
不行啊
报错
[/Quote]

不行啊.报什么错???
不是那个 xxx.pyd 未找到了吧? 应该需要多个文件,你要把文件COPY齐了...
shakaqrj 2009-09-07
  • 打赏
  • 举报
回复
_mymod 是你自定义的吧
Semigod 2009-09-07
  • 打赏
  • 举报
回复
晕,这都没有看懂。请查看disutil的文档
shakaqrj 2009-09-07
  • 打赏
  • 举报
回复
没看懂...
Semigod 2009-09-07
  • 打赏
  • 举报
回复
对于扩大展模块,尽量通过 在setup.py中添加下面的语句来完成设置。这样一般不会出错。

        ext_modules = [Extension("_mymod",["../mymod/clipbrd.cpp",
"../mymod/miffed.c",
"../mymod/mif.c",
"../mymod/mymod.i"
],
include_dirs=["../mymod"],
libraries=["user32"]
),
],
mrshelly 2009-09-06
  • 打赏
  • 举报
回复
把 xxx.pyd 文件 COPY到 .exe 文件夹下就OK了...
shakaqrj 2009-09-06
  • 打赏
  • 举报
回复
不行啊
报错
thy38 2009-09-05
  • 打赏
  • 举报
回复
bundle_files是打包成一个文件吧,用了这个它就无法从文件系统中导入了,你可以把xxxx.pyd单独放在外面。或者用Python将它先解压到系统temp目录。
shakaqrj 2009-09-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 darkchampion 的回复:]
lz看看这个是否有帮助

http://www.py2exe.org/index.cgi/ProblemsToBeFixed
[/Quote]

这个报的错和我不一样,而且也没用
shakaqrj 2009-09-05
  • 打赏
  • 举报
回复
请问怎么把XXXX.pyd单独放在外面?
我程序中有import XXXX
DarkChampion 2009-09-04
  • 打赏
  • 举报
回复
lz看看这个是否有帮助

http://www.py2exe.org/index.cgi/ProblemsToBeFixed

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧