py2exe问题解决大全 – Python量化投资

py2exe问题解决大全

py2exe介绍

在脚本目录创建setup.py脚本配置文件,最简单的文件内容:

#encoding:utf-8

from distutils.core import setup
import py2exe
setup(
console=[{"script": "脚本名.py"}]
)

在脚本所在目录打开命令行,执行:

python setup.py py2exe

错误:编译时卡在running py2exe

此时查看进程,单个编译的python.exe进行已经跑满,但就是不进行下一步。

解决:Python版本不对,当前环境应该是python3.5及以上的版本。目前来说,py2exe最高只支持到python3.4(别看他的whl包名字含有py35什么的),降级到pyhton3.4再编译即可。或者直接换其他编译工具。哈哈哈哈。

错误:ImportError: (No module named '_mssql') 

解决:脚本中应该有使用类似pymssql等模块的引用。而py2exe在打包时,并没有把pymssql依赖的_mssql包一起打包过来。解决办法就是在主脚本入口出直接 import _mssql

错误:py2exe error: MSVCP90.dll: No such file or directory

解决办法相当简单,将setup.py配置文件中增加一行:options = { "py2exe":{"dll_excludes":[“MSVCP90.dll”]}},如下:

#encoding:utf-8

from distutils.core import setup
import py2exe
setup(
console=[{"script": "main.py"}],
options = { "py2exe":{"dll_excludes":["MSVCP90.dll"]}}
)

 

错误:py2exe ImportError: No module named sip

解决办法也很简单,在命令行后面加参数,如下:

python setup.py py2exe --includes sip

 

其他错误

如果你的脚本中引用了一些第三方包,当你移动到其他的机器或者其他环境下编译时,虽然编译没有错误,但是执行时提示缺各种包的话,有可能是因为本身python环境里就缺少这些包而已。

因为py2exe不会检查你是否缺少这些包的。

解决办法也很简单,在编译之前,先用源码的形式执行一遍就好了。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论