我刚完成一个项目,想把它转换成可执行文件。 将 pyinstaller 与命令
pyinstaller --onefile Music_sorter_by_Fabrice_Schöneberger.py
一起使用时,它编译没有错误。但是在执行文件时我得到以下信息:
File "Music_sorter_by_Fabrice_Schöneberger.py", line 1, in <module>
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
File "librosa\__init__.py", line 215, in <module>
File "lazy_loader\__init__.py", line 243, in attach_stub
ValueError: Cannot load imports from non-existent stub 'C:\\Users\\fabri\\AppData\\Local\\Temp\\_MEI157482\\librosa\\__init__.pyci'
[1588] Failed to execute script 'Music_sorter_by_Fabrice_Sch÷neberger' due to unhandled exception!
文件夹
...\_MEI157482\\librosa\\__init__.pyci
不存在(之前存在),如果我在 librosa 安装中查看,我找不到名为 __init__.pyci
的文件。我有一个__init__.pyi
和__init__.py
。我在网上找不到这样的文件,所以我希望这里有人能帮助我。
编辑:问题不是特定于 pyinstaller 的。 py2exe 有完全相同的问题,我找不到
__init___.pyci
。我想我可能是安装程序无法正确编译 librosa?
使用 Auto-py-to-exe 为我工作的 librosa 添加一个特定的钩子。
创建一个名为“extra-hooks”的文件夹,并在其中创建一个文件“hook-librosa.py” 将这两行粘贴到“extra-hooks/hook-librosa.py”中:
from PyInstaller.utils.hooks import collect_data_files
datas = collect_data_files('librosa')
然后通过在“设置”>“手动提供选项”中添加以下命令来告知该文件的位置:
--additional-hooks-dir "[PATH_TO_YOUR_PROJECT]/axtra-hooks"