Python打包安装

        python文件如何打包成.exe程序,这个过程可谓是一波三折,因为是第一次尝试打包文件,所以了解的并不是太多,所以在网上各种搜索资料,最后发现打包需要第三方工具,基本上用的是py2exe 和pyinstaller.然而py2exe只支持2.7及以下版本,因为我下载的是3以上的版本,所以直接选择了pyinstaller。

这里要感谢这个人写的博客,因为我是参考这个步骤来安装的https://blog.csdn.net/douzhenwen/article/details/78886244

下面说说我的个人电脑安装pyinstaller步骤以及遇到的问题吧。

1.找到Python3文件下的scrips文件中的pip安装,找到这个路径C:\Users\admin\AppData\Local\Programs\Python\Python37-32\Scripts\pip.exe

2.然后拖拽到命令窗口(Windows键+R键,输入cmd)

3.在C:\Users\admin\AppData\Local\Programs\Python\Python37-32\Scripts\pip.exe后面加install pyinstaller

即:C:\Users\admin\AppData\Local\Programs\Python\Python37-32\Scripts\pip.exe install pyinstaller回车键安装就可以了

4.安装好了之后命令窗口显示pip已经有新的版本19.0.3,而我当前的版本是18.1,建议安装新的版本,于是乎就按照提示安装了新的版本。在命令窗口输入:Python -m pip install --upgrade pip即可

上面是根据我自己电脑上的文件安装路径安装的pyinstaller。

但是安装过程并不是那么顺利,接下来说一下我安装过程中遇到的问题吧。

问题1.安装好pyinstaller,如何去使用pyinstaller打包呢?

先在环境变量中添加Python的地址,添加之后按照打包方式输入:

C:\admin\AppData\Local\Programs\python\python37-32\Scripts>pyinstaller -F guess.py

但是显示如下:C:\admin\AppData\Local\Programs\python\python37-32\Scripts不是内部或外部命令,也不是可运行程序或批处理文件

而且我已经把guess.py的文件(我的一个要打包的代码名称)和pyinstaller的文件放在同一目录下,之后继续搜索,发现Python3.7打包的方式是在cmd中输入:C:\admin\AppData\Local\Programs\python\python37-32\Scripts\pyinstaller.exe>pyinstaller -F G:\python_work\guess.py(G:\python_work\guess.py是要打包的文件地址)

结果成功了,真的是很高兴,然后排查,我把环境变量里面的路径删了,之后发现一样成功,所以就是和路径没有关系,那就是输入方式的问题,应该加上pyinstaller.exe,而且要打包的程序不一定要放在同一目录下,只要输入要打包程序的路径就可以了,而且打包的文件存储在C:Users\admin\dist中

试着运行.exe的文件,结果成功了,唯一美中不足的是运行成功之后界面就闪退了,我是想让运行成功之后界面继续停留,然后继续寻找答案,发现在代码的最后加上两行代码:

import  os

os.system('pause')

问题2.当我加上以上两行代码的时候,我用中文注释了,但是中文注释的代码不能打包,并显示UnicodeDecodeError

网上找了很多答案,大部分是说文件名把中文改成英文,但是并不是我要的答案,我想知道代码如何在有中文的情况下打包成.exe的文件,本来都准备在Stack Overflow上面求助的,之后问了问大师兄,一起交流讨论,原来问题不在打包上面,而是在代码本身,(我用的是Geany编辑器

解决办法:在Geany编辑器中:文档->设置文件编码->Unicode(UTF-8),结果成功,而且打包带中文的代码也成功了。

附带一些Python小知识:

Python的四种类型的指令:

1.表达式是由操作符连接的值。如2+2,'hello'+''+' world',当表达式跟在if和while后面,可称之为条件

2.赋值语句把值存储到变量中,以便在随后的程序中能够使用这个值

3.if,while,break语句都是流程控制语句,可导致执行跳过指令,循环执行指令或者跳出循环。

4.print()函数和input()函数。


打包参数:

-F, –onefile 打包一个单个文件,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用

-D, –onedir 打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,我个人比较推荐这样,代码易于维护

-K, –tk         在部署时包含 TCL/TK

-a, –ascii 不包含编码.在支持Unicode的python版本上默认包含所有的编码.

-d, –debug 产生debug版本的可执行文件

-w,–windowed,–noconsole 使用Windows子系统执行.当程序启动的时候不会打开命令行(只对Windows有效)

-c,–nowindowed,–console 使用控制台子系统执行(默认)(只对Windows有效)pyinstaller -c  xxxx.py  pyinstaller xxxx.py --console

-s,–strip 可执行文件和共享库将run through strip.注意Cygwin的strip往往使普通的win32 Dll无法使用.

-X, –upx 如果有UPX安装(执行Configure.py时检测),会压缩执行文件(Windows系统中的DLL也会)(参见note)

-o DIR, –out=DIR 指定spec文件的生成目录,如果没有指定,而且当前目录是PyInstaller的根目录,会自动创建一个用于输出(spec和生成的可执行文件)的目录.如果没有指定,而当前目录不是PyInstaller的根目录,则会输出到当前的目录下.

-p DIR, –path=DIR 设置导入路径(和使用PYTHONPATH效果相似).可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录.也可以使用多个-p参数来设置多个导入路径,让pyinstaller自己去找程序需要的资源

–icon=<FILE.ICO> 将file.ico添加为可执行文件的资源(只对Windows系统有效),改变程序的图标  pyinstaller -i  ico路径 xxxxx.py

–icon=<FILE.EXE,N> 将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效)

-v FILE, –version=FILE 将verfile作为可执行文件的版本资源(只对Windows系统有效)

-n NAME, –name=NAME 可选的项目(产生的spec的)名字.如果省略,第一个脚本的主文件名将作为spec的名字

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容

  • 安装命令 pythonsetup.py install 更新命令 pip install –upgrade set...
    朝畫夕拾阅读 8,045评论 0 0
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 2,926评论 1 3
  • 第八章 程序设计方法论 人生苦短,请用Python。Life is short. You need Python....
    jplee阅读 1,749评论 0 1
  • python 也是很值得学习的一门工具。学好python和R。 1环境管理 管理 Python 版本和环境的工具 ...
    Liam_ml阅读 4,784评论 1 51
  • 别有洞顶~ 是个防空洞。 在新华书店还可以翻一翻看一看,这里根本不想看,自己太浅薄。 墙壁上的人,一个不认识,关键...
    木筱茜阅读 311评论 2 0