python内置资源文件打包exe

一、脚本简述:即script,在某种具有解释功能的环境中运行。非脚本语言(编译语言):需要通过编译(compile)和链接(link)等步骤生成可执行文件,可执行文件在计算机上运行。

二、编写脚本:编写脚本安装pycharm编程工具,安装python3编译环境。编写过程需要有基本的编程意识,新手推荐边开发边学习(不要觉得要把知识看会再去开发),不会的知识点就去查资料提升自己,目标不明确没有大方向则需咨询请教同事。

三、.py打包为**.exe:

不需读取已有文件,将.py直接生成.exe。

如有资源文件(可以是txt\.c\jpg等)想在其他不安装python相关的电脑上运行,需要将所用文件打包进.exe变成内置资源.

1.安装打包工具包:window+r,输入cmd回车,输入pip install pyinstaller回车,出现sucessfully表示成功。(如果没有成功大概率是没有安装pip,按照所需的包逐层安装,网上教程很多不赘述。)

2.打包成.exe:命令:pyinstaller -F -w 文件名.py(1)推荐如图,直接使用pycharm的终端输入命令。(2)也可以cmd打开终端,cd进入.py文件目录。

python内置资源文件打包exe_第1张图片

3.工程文件增加了dist文件夹、build文件夹、**.spec文件,其中dist下面即打包好的**.exe:

python内置资源文件打包exe_第2张图片

4.如需将其他文件打包进.exe:

(1)将3生成的dist和build文件夹删除。

(2)新建文件,如3中图我所建为res,在res中放入项目需要的资源文件。

(3)修改.py中关于资源文件的路径。参考知识点如下:

import sys
import os

#生成资源文件目录访问路径
def resource_path(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)

#访问res文件夹下数据.txt的内容
filename = resource_path(os.path.join("res","数据.txt"))

(4)修改3生成的**.spec文件参数。如下图修改前datas=[],运行**.exe时会在根目录下生成一个临时文件,下图data的第一个参数的含义为:将本地项目的res文件夹下CanTrcv.c文件,放在**.exe运行生成的临时文件根目录下的res文件夹下,其他参数雷同。

python内置资源文件打包exe_第3张图片

5.打包**.spec文件(注意不是**.py),同样可以直接在pycharm自带的终端输入命令,也可以cmd后cd进入**.spec所在目录运行命令。命令:pyinstaller -F **.spec(如果运行不成功可以去掉-F),会重新生成dist和build文件夹,这个dist文件夹下的**.exe是我们需要的内置资源文件的脚本。

四、运行调试:window+r,输入cmd回车,进入exe所在目录的文件夹(输入命令:cd 路径),运行输入命令:**.exe。调试需要在运行时**.exe时参数加个’-d’,表示debug模式, 回车后能看到打印的错误信息。若进入目录时如果需要管理员权限进入c盘:

 1、右键点击开始(如图导航栏第一个),选择终端(管理员)

2、进入c盘命令: cd ${env:ProgramFiles(x86)}。

你可能感兴趣的:(windows,python,pycharm)