Python编译成exe

python的编译有多种好处,其中主要有提高运行速度、代码保密

方式1:编译成pyc文件(二进制的文件)

速度有所提高。我的一个代码从150s变成了130s。

操作方法:打开cmd,进入py文件的目录,输入下面命令
           python3 -m py文件名
           python3 -O -m py_compile py文件名  #这个也可以
      完成后,当前目录下会出现一个__pycache__文件夹,编译后的二进制文件pyc就在里面
 
方式2:编译成exe文件
一、首先安装 pyinstaller
命令:
    pip3 install pyinstaller
二、安装完成后,开始使用。进入要编译的py文件所在目录
    pyinstaller ./py文件名  #效果是有一堆的文件在dist文件夹下
    如果要编译成一个文件:
    pyinstaller --console --onefile ./py文件名  #在dist文件夹下只生成一个exe文件。
    
初次运行,可能会出现 failed to create process,这是pip3的bug,路径的空格不能正常识别
解决:
    进入C:\Program Files\python\3.5\Scripts,可以看到有一个pyinstaller-script.py和pyinstaller.exe
    文本编辑器打开pyinstaller-script.py.第一行的代码申明是这样的
    #!c:\program files\python\3.5\python3.exe
    加一个引号变成:#!"c:\program files\python\3.5\python3.exe"
重新运行编译命令,即可。

从运行速度上看,.exe和.pyc一样。但都大于py文件。exe文件的兼容性更好把,.pyc需要电脑安装有编译时相同的python版本。(.pyc的生成速度很快)

问题解答:
1.编译成pyc,还会出现.没有_path_属性的错误
"Error while finding spec for 'fibo.py' (: 'module' object has no attribute 'path')"
这是因为编译时,不应该使用
    python3 -m kill2next.py  #kill2next是文件名
.py表示该模块(py)在包kill2next当中
正确方法:
    python3 -m kill2next  #不要带后缀

2.exe编译失败:
UnicodeDecodeError:"gbk" codec can't decode byte 0xaa in position 160:illegal multibyte sequence
解决:
文件名改成英文


   
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值