0

我有一个要exe 通过Pyinstaller. 覆盖运行良好,没有错误,但是当我运行 exe 文件时,python 文件的第 13 行出现错误(行是 import librosa)。然后我得到一堆文件,然后是

FileNotFoundError: No file or directory: 'C:\\Users\\johnny\\Appdata\\Local\\Temp\\_MEI70722\\librosa\\util\\example_data\\registry.txt'. 

python文件本身也运行良好。任何帮助,将不胜感激

4

4 回答 4

3

PyInstaller 尝试查找所有依赖项,但是此文件未导入而是加载,因此它错过了它。您可以简单地强制它添加它:

--add-data [path to your python]/Lib/site-packages/librosa/util/example_data;librosa/util/example_data
于 2020-09-30T06:06:55.767 回答
0

您需要将数据文件指定为 PyInstaller 挂钩。

  1. 创建一个文件夹“extra-hooks”,并在其中创建一个文件“hook-librosa.py”
  2. 将这两行粘贴到“extra-hooks/hook-librosa.py”中:
from PyInstaller.utils.hooks import collect_data_files
datas = collect_data_files('librosa')
  1. 然后通过在 PyInstaller 命令中添加以下 1 项来告诉 PyInstaller 在哪里找到此文件:

--additional-hooks=额外的钩子

--additional-hooks-dir "[PATH_TO_YOUR_PROJECT]/axtra-hooks"

第二个对我有用,我正在使用auto-py-to-exe,建立在PyInstaller.

于 2021-05-27T16:23:43.033 回答
-1

在 中PyInstaller,您应该输入 python 文件的名称,然后输入--onefile. 它会生成一个.EXE包含所有导入文件的文件(如果您在 Windows 上)。您可以在此处了解更多信息:https ://pyinstaller.readthedocs.io/en/stable/usage.html

于 2020-08-02T18:11:58.053 回答
-2

我猜这个文件不存在。打开一个file manager并复制目录。

于 2020-08-02T17:40:40.427 回答