Python打包exe
作为一个刚刚入门的python学徒,python的一些小细节真是让我吃尽苦头。
主要是这样,最近有个需求是抓取某个网站最新的数据,然后做成一个exe文件可以放在一台机器上跑,
为了这个,我把之前学一半的python知识重新拿了起来(之前看了两个月的书,因为没有需求所以就把它扔了,我太懒了.....)。
在打包这个环节花费了整整半天,还没有处理完,最后是公司的大牛给出了指导意见才一步步搞定,所以写下这个日志把过程记录下来,以后有时间就拿出来翻翻。
1,我用的python2.7,首先先下载py2exe这个插件
2,假如你写完的py文件叫success.py,将此文件复制到PYTHON的存放路径下,比如我的就是D:\Python
3,在D:\Python下新建setup.py,打开文件,里面写上:
from distutils.core import setup
import py2exe
setup(console=["main.py"])
4,打开cmd,找到文件的路径所在D:\Python,在命令行敲 python setup.py py2exe -p lxml,gzip(这里的lxml与gzip是第三方库,因此命令行就不是敲python setup.py py2exe了)
PS:
在打包的时候还可能遇到以下几个问题;
提示:缺少 MSVCP90.dll
解决:一些人从自己C盘里面拷贝了一份放到文件夹下,我呢则是在PYTHON路径下找到msvcp90.dll这个文件,直接把小写改为大写就行啦
提示:执行的时候提示缺少某个图片文件或者配置文件(.ini)
解决:把对应的文件拷贝到dist文件夹下
--------------------------------------------------------------------冷漠的分割线--------------------------------------------------------------------------------
最近用py2exe打包还是出现了一个问题,原因是使用了beautifulsoup4
刚开始打包时,直接 python setup.py -p lxml,gzip
打包过程很顺利,但是运行提示 no module named bs4
有了上次的经验,我知道这是beautifulsoup4这个美丽的应用没被加载到
于是自作聪明的 python setup.py -p lxml,gzip,bs4
这次打包就遇到了问题,提示问题同上,百度上搜索了很久没用,于是第一次上bing
先是在setup.py中
from distutils.core import setup
import py2exe
setup(
console = ["main.py"],
options = {
'py2exe':{
'packages' : ['bs4']
}
}
)
增加了 'packages': ['bs4']
运行打包,还是没成功
最后在某一篇博客上看到了是由于beautifulsoup安装时在site-packages是egg作为后缀,他的做法是先用winrar解压,然后把bs4这个目录直接拉到site-packages里面,我则是直接把之前从某处拉来的文件找到bs4这个文件夹,copy到site-packages,然后运行打包命令,OK
此处是求助原文出处:http://www.cnblogs.com/simplestupid/p/4716658.html