pyinstaller的一些小问题

作者: Lykit01 | 来源:发表于2019-01-06 10:49 被阅读3次

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

    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实现的插件!下次写这中间的细节问题~

    相关文章

      网友评论

        本文标题:pyinstaller的一些小问题

        本文链接:https://www.haomeiwen.com/subject/kdzjrqtx.html