Python – Как распространить исполняемый файл, созданный pyinstaller? ⇐ Python

Программы на Python
Anonymous
Python – Как распространить исполняемый файл, созданный pyinstaller?

Сообщение Anonymous »

Я работаю над проектом Python, для которого мне нужно разработать графический интерфейс с использованиемstreamlit, чтобы принимать некоторые пользовательские данные, выполнять некоторые вычисления с использованием октавных сценариев и отображать результаты в графическом интерфейсе с потоком. Я упаковал все приложение с помощью pyinstaller, и исполняемый файл на моем компьютере работает нормально. Но когда я отправил исполняемый файл вместе со всей папкой проекта на другой компьютер, он выдает ошибку "streamlit не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл".
На этом компьютере есть Octave и Python. установлен.
Прикрепляю файл .spec для справки.

Код: Выделить всё

# -*- mode: python ; coding: utf-8 -*-

from PyInstaller.utils.hooks import collect_all, copy_metadata

datas = []
binaries = []
hiddenimports = []

tmp_ret = collect_all('debugpy')
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
tmp_ret = collect_all('octave_kernel')
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
tmp_ret = collect_all('streamlit')
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
tmp_ret = collect_all('oct2py')
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
tmp_ret = collect_all('multiprocessing')
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
tmp_ret = collect_all('PIL')
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
tmp_ret = collect_all('streamlit_option_menu')
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]

hiddenimports += [
'streamlit',
'streamlit.runtime.scriptrunner.script_run_context',
'streamlit.components.v1',
'streamlit.runtime.legacy_caching.hashing',
'streamlit.proto',
'streamlit.type_util',
'streamlit.server.server',
'streamlit.logger',
]

datas += copy_metadata('streamlit_extras')
datas += [('Frontend/*', 'Frontend'),('Frontend/pages/*', 'Frontend/pages'),('backend_codes/*', 'backend_codes'),('Plots/', 'Plots'), ('variable_text_files/*', 'variable_text_files')]

a = Analysis(
['my_app.py'],
pathex=[],
binaries=binaries,
datas=datas,
hiddenimports=hiddenimports,
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)

exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='BulletTrain',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)

Как убедиться, что исполняемый файл работает правильно на другом компьютере?
Я перечислил все модули и пакеты, используемые в проекте, в разделе скрытого импорта правильно, больше ничего не упущено.
Все еще не работает..

Подробнее здесь: https://stackoverflow.com/questions/790 ... executable

Вернуться в «Python»