网站地图 - XML地图 - 设为首页 - 加入收藏
您的当前位置:主页 > 国内 > 正文

东方谘偌市场营销有限公司_win10环境下利用pyinstaller把python代码(.py)打包成可执行文件(.exe)

前言

最近写了一个小小的检测程序,python写起来只需要短短一百行,可是打包起来就没有C那么容易了。下面记录一下我艰难的“打包”过程。

方法一:py2exe

py2exe是一种经典的方法,为什么说他经典呢?因为这玩意取了个这么好听的名字,但是只支持到python3.4,你这让我们这种紧跟时代潮流的弄潮儿怎么打包?

好吧,放弃。

方法二:pyinstaller

这是一个看起来比较靠谱的方法,只需要用pip安装,然后在命令窗里面一通操作就可以了。在这里,我参考了另一位老哥的博客(http://blog.csdn.net/mrlevo520/article/details/51840217)

不管那么多,我直接三下五除二,开始了pip,打开Anaconda Prompt,输入”pip install pyinstaller“

我是采用Anaconda安装的python3,所以自然用的是Anaconda Prompt,这里大家应该没有什么疑问吧 :)。

结果令人惋惜:

?

?

PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。

无奈的我只好上网寻求帮助,在这位同学的博客(http://blog.csdn.net/qq_33530388/article/details/68933201)找到了解决方法,原来是编码的问题。虽然py3统一用utf-8了。但win下的终端显示用的还是gbk编码。

解决方法如下:

从你的python文件夹里找到pip下的compat文件夹,我的在F:pythonAnaconda3Libsite-packagespipcompat

没错就是这里,有一个__init__.py文件,打开它,执行以下操作:

return s.decode("utf_8") 改为return s.decode("cp936")

OK,结束后再次尝试,看看能不能解决。。

cong ni de python wen jian jia li zhao dao pip xia de compat wen jian jia, wo de zai F: pythonAnaconda3Libsitepackagespipcompat mei cuo jiu shi zhe li, you yi ge __init__. py wen jian, da kai ta, zhi xing yi xia cao zuo: return s. decode" utf_8" gai wei return s. decode" cp936" OK, jie shu hou zai ci chang shi, kan kan neng bu neng jie jue..

PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。好吧,还是不行。。。

不过功夫不负有心人,终于在另一个博客那里(http://blog.csdn.net/create115721/article/details/79238696),我找到了解决方法:

将刚才那个__init__.py文件中所有"utf-8"改为"gbk"。如此便解决了编码的问题。

?

安装完毕,接下来开始打包。

有和我一样忘了在windows的CMD中操作的同学请自觉复习(http://www.cnblogs.com/kekec/p/3662125.html),我这里就是直接进入F盘,输入“F:”,然后不停的cd到我的代码所在的文件夹。

最后执行命令:pyinstaller work1.py

结果:

?

?

?

这样就算是大功告成了吧,进入该目录下的dist文件夹打开看看,运行.exe文件,和下图一样没问题。可是。。我们还漏了一个重要的细节。

因为我们没有加参数,所以pyinstaller打包成散包。具体参数如下:

?

参数 定义
-F 指定打包后只生成一个exe格式的文件
-D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-c –console, –nowindowed 使用控制台,无界面(默认)
-w –windowed, –noconsole 使用窗口,无控制台
-p 添加搜索路径,让其找到对应的库。
-i 改变生成程序的icon图标
?
?
?
?
?
?
?
所以可以用参数-F 让生成一个文件,输入:pyinstaller -F work1.py
?
这个文件就可以发给你的朋友们,打开后愉快的happy(装b)啦!。。
?
?

?

当前禁肖--禁尾:http://www.amaezona.com/ufdtk/13568-873014-16518.html

发布时间:02:01:51

994699.com??天机神算论坛33288网址??曾道点特23476??今期新老藏宝图??东方心经玄机图??www.670670.com??香港最准一肖中特??www.797555.com??曾夫人王中王??华南高手论坛??

注:凡本网注明来源非本站的作品,均转载自其它媒体,并不代表本网赞同其观点和对其真实性负责。
本站致力于帮助禁肖--禁尾传播,希望能够建立合作关系。
若有任何不适的联系以下方式我们将会在24小时内删除。联系方式:
Copyright ? 2018 蜘蛛资讯网 版权所有