Решатель доступен, когда вы используете целлюлозу из своих python источников, потому что этот решатель является единственным, который поставляется с целлюлозой. Но когда вы запускаете pyinstaller, он больше не доступен (потому что вы явно не указываете pyinstaller копировать его).
При упаковке целлюлозы с помощью pyinstaller вы должны указать pyinstaller получить каталог с CB C решатель, который поставляется с мякотью тоже. Если нет, вы получите только код python, а затем ваша упакованная версия не найдет решатель CB C.
Если у вас есть файл config.spec
для pyinstaller, вам нужно отредактировать его в что-то вроде следующего (по крайней мере, что-то вроде этого работает для меня):
import sys
import os
block_cipher = None
def get_pulp_path():
import pulp
return pulp.__path__[0]
path_main = os.path.dirname(os.path.abspath(sys.argv[2]))
a = Analysis(['MAIN_SCRIPT.py'],
pathex=[path_main],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
a.datas += Tree(get_pulp_path(), prefix='pulp', excludes=["*.pyc"])
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(pyz, a.scripts, exclude_binaries=True, name='NAME', debug=False, strip=False, upx=True, console=True)
coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, name='NAME')
И затем запустить
pyinstaller -y config.spec