Published on

Pyinstaller打包时带上版权等信息

Authors
  • avatar
    Name
    Duckweeds7
    Twitter

PyInstaller 是一个用于将 Python 应用程序打包为独立可执行文件的工具。它可以将 Python 代码和其依赖的库、资源文件等打包成一个单独的可执行文件,使得应用程序可以在没有 Python 解释器环境的机器上运行。

文件属性详细信息页面

要实现上面的效果,是需要加一个说明信息的文件在打包的时候用--version-file 这个参数指定文件,那这个文件要怎么生成呢?

可以看官方的文档自己写一份,其实用到的是微软官方规定的一些东西,但是我嫌太麻烦就找了个库来代替。

https://github.com/DudeNr33/pyinstaller-versionfile

主要就是三步:

编写 yml 文件

编写一个 yml 文件,这里比如叫 metadata.yml,内容类似下面这样,具体对应关系可以对比上图:

Version: 1.0.0.0
CompanyName: RPA-MADE
FileDescription: Duckweeds7
InternalName: 简易摄影作品归档工具
LegalCopyright: © RPA-MADE. All rights reserved.
OriginalFilename: https://www.duckweeds7.com
ProductName: root@duckweeds7.com
Translation:
  - langID: 2052
    charsetID: 1200

langID 和 charsetID 看这里https://learn.microsoft.com/en-us/windows/win32/menurc/varfileinfo-block 把 langID 的 code 转十进制就是了

生成版本说明文件

先 pip 安装一下

pip install pyinstaller-versionfile

然后生成 txt 文件

create-version-file metadata.yml --outfile file_version_info.txt

可以看一下内容,贼复杂,所以还是用这个库省事一点

打包时带上这个 txt 文件

pyinstaller -F --version-file=file_version_info.txt  你的脚本.py