美文网首页
pyinstaller将数据文件一起打包生成单个exe文件的方法

pyinstaller将数据文件一起打包生成单个exe文件的方法

作者: 安哥拉的赞礼 | 来源:发表于2019-12-23 20:25 被阅读0次

    首先将py文件中所有文件路径改为资源访问路径,在python主文件中加入如下函数及类似路径

    #生成资源文件目录访问路径
    def resourcePath(relative_path):
        if getattr(sys, 'frozen', False):  #是否Bundle Resource
            base_path = sys._MEIPASS
        else:
            base_path = os.path.abspath(".")
        return os.path.join(base_path, relative_path)
    
    
    path_des = resourcePath(os.path.join("data", "download", "0.txt"))
    path_gif = resourcePath(os.path.join("data", "loading.gif"))
    path_error = resourcePath(os.path.join("data", "error.jpg"))
    path_icon = resourcePath(os.path.join("data", "icon.ico"))
    

    这样exe文件就无需附带数据文件,使用后会在下列目录生成临时文件

    C:\Users\你的用户名\AppData\Local\Temp
    

    用pipenv创建python3.6虚拟环境

    1、安装pipenv

    pip3 install pipenv   
    

    2、在干净目录下初始化python环境, 系统会自动在环境变量里搜索符合要求的python环境

    pipenv --python 3.6
    

    3、进入虚拟环境(第一次进入会自动进行安装 pipenv install)

    pipenv shell
    

    4、退出虚拟环境

    exit
    

    5、进入虚拟环境内,首先换源解决安装慢问题


    用Notepad++(技术无罪。。)编辑环境下的Pipfile文件



    换掉source里的url

    [[source]]
    name = "pypi"
    url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
    verify_ssl = true
    

    然后开始安装所需要的包

    6、开始生成exe

    首先需要生成spec文件,
    pyi-makespec -Fw NetSpeedTest.py (如果要添加Icon等可以在这里就使用pyi-makespec --icon icon.ico -Fw NetSpeedTest.py语句生成spec文件)


    编辑spec文件,在datas选项中说明需要将哪些文件加入exe,在临时文件夹中命名成什么,本次使用data文件夹,会将data的文件都拷贝过去,以及可以改新生成的exe文件名



    生成EXE文件,pyinstaller -F NetSpeedTest.spec
    如果报如下错误,肯定是因为路径名(比如icon的路径)写错



    可以在新生成的dist文件夹里找到

    运行时可以找到如下几个临时文件,软件关闭后会自动删除

    参考文章:

    相关文章

      网友评论

          本文标题:pyinstaller将数据文件一起打包生成单个exe文件的方法

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