Я пытаюсь использовать PyInstaller для компиляции одного из демо-скриптов для Asciimatics, в надежде, что в конечном итоге сможет создать простой графический интерфейс для текстовой игры. м развивается, и она возвращает следующее сообщение об ошибке:PyInstaller ImportError: Нет модуля с именем 'pyfiglet.fonts'
C:\Users\X\Documents\Python Scripts\asciimatics samples\dist\test>test.exe
Traceback (most recent call last):
File "site-packages\setuptools-19.2-py3.4.egg\pkg_resources\__init__.py", line 443, in get_provider
KeyError: 'pyfiglet.fonts'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 22, in <module>
File "site-packages\asciimatics\screen.py", line 859, in wrapper
File "<string>", line 12, in demo
File "site-packages\asciimatics\renderers.py", line 276, in __init__
File "site-packages\pyfiglet\__init__.py", line 710, in __init__
File "site-packages\pyfiglet\__init__.py", line 717, in setFont
File "site-packages\pyfiglet\__init__.py", line 90, in __init__
File "site-packages\pyfiglet\__init__.py", line 100, in preloadFont
File "site-packages\setuptools-19.2-py3.4.egg\pkg_resources\__init__.py", line 1160, in resource_exists
File "site-packages\setuptools-19.2-py3.4.egg\pkg_resources\__init__.py", line 445, in get_provider
ImportError: No module named 'pyfiglet.fonts'
test returned -1
погуглить эта ошибка возвращается this thread, но мне кажется, что ошибка вызвана неисправностью в самой SublimeFiglet, и был зафиксирован два года назад.
Я использую Python 3.4 для Windows 10. Мне пришлось переопределить setuptools до 19.2 (я полагаю, это версия, к которой я должен был перейти), потому что я получал сообщение об ошибке, когда упаковывался пакет при попытке запустить скомпилированный файл .exe.
Я импортировал как шесть (из-за его скрытого импорта), так и модули pyfiglet в test.py, в дополнение к другим импортерам, необходимым для запуска скрипта. Импорт пифиглетов и любые варианты, о которых я могу думать, ничего не меняет. Я могу изменить файл спецификации, чтобы добавить скрытый импорт на шесть, хотя я не вижу, как это изменит что-либо.
Вот файл спецификации Pyinstaller использует:
block_cipher = None
a = Analysis(['test.py'],
pathex=['C:\\Users\\Sirindil\\Documents\\Python Scripts\\asciimatics samples'],
binaries=None,
datas=None,
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='test',
debug=False,
strip=False,
upx=True,
console=True)
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='test')
Каждый образец включен сценарий Asciimatics возвращает эту же ошибку для меня. Я попытался использовать различные параметры при запуске pyinstaller в скрипте, без успеха. Я что-то упускаю? Я не знаю, как это исправить.
Как вы строите свой exe с помощью PyInstaller? Можете ли вы предоставить файл спецификации? –
Отредактировано, чтобы предоставить файл спецификации. –