Nuitka打包Python程序,运行后提示第三方库包含的文件不存在
   1

Nuitka打包Python程序,运行后提示第三方库包含的文件不存在。

这是由于打包时未将拓展包的文件打包到程序目录下。

解决方法:

通过命令参数

nuitka 有以下命令都可以将附件文件打包到程序目录 include-data-file 、include-data-dir,分别是导入文件和导入文件夹。

参数格式如下 “=” 前为源路径等号后为打包后路径,源路径相对于打包目录。

1
2
3
--include-data-file=files/msvcr120.dll=pyzbar/msvcr120.dll
 
--include-data-dir=static=static

通过配置文件

找到电脑中Python的安装目录

{Python安装目录}\python3\Lib\site-packages

然后找到以下文件,该文件是处理第三方拓展包资源的配置文件。

nuitka\plugins\standard\standard.nuitka-package.config.yml

打开yml配置文件,内容如下所示。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
- module-name: 'sv_ttk'
  data-files:
    dirs:
      - 'theme'
    patterns:
      - 'sv.tcl'

- module-name: 'pytkUI'
  data-files:
    dirs:
      - 'icons'
    patterns:
      - '*.json'
      - '*.woff'

这里yaml格式配置文件,每个短横线“-”代表一项配置。主要规则如下所示

  • module-name 第三方包名称
  • data-files 配置数据文件位置和查找规则
  • dirs 相对与拓展包的数据文件路径
  • patterns 匹配文件的规则

根据缺失的文件,在此添加配置后,重新打包即可。如果你是拓展包开发者可以将配置提交到nuitka的仓库。

参考链接

配置的参数挺多,详细可查看官方链接

Nuitka Package Configuration — Nuitka the Python Compiler documentation

站长微信
请备注来意
二维码