数据蛙数据分析每周作业

pyinstaller的一些小问题

2019-01-06  本文已影响3人  Lykit01

不好意思抄冷饭了。因为这个问题后来又修改了一下,所以打算再发一遍。另外本周面试和作业太多了,笔记是做了很多细节的东西,但是没法整理成篇,有空整理成篇再发出来。笔记当然要完整!

1.要在Terminal里输入命令,即cmd\命令提示符里,而且必须指定pyinstaller的具体位置,本机是在:C:\Users\张小幽\AppData\Local\Programs\Python\Python35-32\Scripts\pyinstaller.exe

注意安装package要安装pyinstaller,不能装错包了;

2.当有多个py文件时,要一起打包,语法如下:

C:\Users\张小幽\AppData\Local\Programs\Python\Python35-32\Scripts\pyinstaller.exe -F main.py settings.py sprites.py

3.注意系统是在C:\Users\张小幽\文件夹下找main.py settings.py sprites.py这几个文件,这几个文件要放在这个目录下,如果是在pycharm里用pyinstaller,要将py文件放到project的目录下,跟.spec文件平级就可以了;

4.可能会出现这个错误:


编码问题

注意这不是你的py文件有误,而是pyinstaller-script.py这个文件的编码有误,要找到C:\Users\张小幽\AppData\Local\Programs\Python\Python35-32\Scripts\pyinstaller-script.py这个文件,然后打开长这样:

#!c:\users\张小幽\appdata\local\programs\python\python35-32\python.exe
# EASY-INSTALL-ENTRY-SCRIPT: 'PyInstaller==3.4','console_scripts','pyinstaller'
__requires__ = 'PyInstaller==3.4'
import re
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(
        load_entry_point('PyInstaller==3.4', 'console_scripts', 'pyinstaller')()
    )

这是编码有问题,要在第一行加上# -- coding:utf-8 --,变成这样:

# -*- coding:utf-8 -*-
#!c:\users\张小幽\appdata\local\programs\python\python35-32\python.exe
# EASY-INSTALL-ENTRY-SCRIPT: 'PyInstaller==3.4','console_scripts','pyinstaller'
__requires__ = 'PyInstaller==3.4'
import re
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(
        load_entry_point('PyInstaller==3.4', 'console_scripts', 'pyinstaller')()
    )

有可能用户名‘张小幽’那里还会出现乱码,将乱码改成用户名就好了

5.程序所调用的assets(包括图像和音乐)要和exe文件放在一个目录下,这样运行exe文件就可以玩了,如下图所示:


目录

6.生成的exe文件有可能打开后闪退,这是缺少环境导致的,检查一下你是不是在pycharm里写的py文件,而pycharm里装了某个包而你的电脑里没有装这个包,要在电脑里再装一下这个包。

7.如果你装的是anacoda的话,打包出来的exe文件会非常大,有200多Mb,运行起来也比较慢,建议再装一个原生的python,只放需要的包,然后再打包。重新装python时最好将python装到appdata里,如果是装在programfiles里,容易出错,导致安装的包被放在appdata里的文件夹里。

正在用pandas改写以前用vba实现的插件!下次写这中间的细节问题~

上一篇下一篇

猜你喜欢

热点阅读