打包命令
cxfreeze demo_toolbox.py --base-name=win32gui
错误内容
---------------------------
cx_Freeze: Python error in main script
---------------------------
Traceback (most recent call last):
File "D:\Anaconda3\envs\pytorch\lib\site-packages\soundfile.py", line 142, in <module>
raise OSError('sndfile library not found')
OSError: sndfile library not found
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Anaconda3\envs\pytorch\Lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 113, in run
module_init.run(name + "__main__")
File "D:\Anaconda3\envs\pytorch\Lib\site-packages\cx_Freeze\initscripts\Console.py", line 15, in run
exec(code, module_main.__dict__)
File "demo_toolbox.py", line 2, in <module>
File "I:\SourceCode\pythonProject\MockingBird\toolbox\__init__.py", line 1, in <module>
from toolbox.ui import UI
File "I:\SourceCode\pythonProject\MockingBird\toolbox\ui.py", line 7, in <module>
from encoder.inference import plot_embedding_as_heatmap
File "I:\SourceCode\pythonProject\MockingBird\encoder\inference.py", line 3, in <module>
from encoder.audio import preprocess_wav # We want to expose this function from here
File "I:\SourceCode\pythonProject\MockingBird\encoder\audio.py", line 7, in <module>
import librosa
File "D:\Anaconda3\envs\pytorch\lib\site-packages\librosa\__init__.py", line 209, in <module>
from . import core
File "D:\Anaconda3\envs\pytorch\lib\site-packages\librosa\core\__init__.py", line 6, in <module>
from .audio import * # pylint: disable=wildcard-import
File "D:\Anaconda3\envs\pytorch\lib\site-packages\librosa\core\audio.py", line 8, in <module>
import soundfile as sf
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "D:\Anaconda3\envs\pytorch\lib\site-packages\soundfile.py", line 163, in <module>
_path, '_soundfile_data', _libname))
OSError: cannot load library 'I:\SourceCode\pythonProject\MockingBird\dist\lib\_soundfile_data\libsndfile64bit.dll': error 0x7e
解决办法
在指令后面加packages把对应包名或路径名加上去
cxfreeze --packages=_soundfile_data demo_toolbox.py --base-name=win32gui