Я создаю приложение kivy, я преобразую его в исполняемый файл с помощью PyInstaller, и оно работает очень хорошо, но проблема в том, что существует множество файлов (.dll, .pyd ... и т. Д.), Которые создаются с помощью Myapp.exe в той же папке.я хочу передать приложение нескольким пользователям и поместить все файлы и папки в одну папку или максимум в 2, кроме Myapp.exe.
У меня было это для другого приложения, потому что cx_freeze сделал это, сгенерировавпапка lib.Pyinstaller не создавал эту папку, он отображал все файлы в той же папке, что и исполняемый файл.
Кто-нибудь может предложить мне решение этой проблемы, пожалуйста?
вот мой .spec:
block_cipher = None
def get_pandas_path():
import pandas
pandas_path = pandas.__path__[0]
return pandas_path
a = Analysis(['Myapp.py'],
pathex=['C:\\HOMEWARE\\Anaconda3-Windows-x86_64\\\\deskapp\\Code'],
binaries=[],
datas=[],
hiddenimports=['os','pandas','sys','kivy'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
dict_tree = Tree(get_pandas_path(), prefix='pandas', excludes=["*.pyc"])
a.datas += dict_tree
dict_tree = Tree(get_pandas_path(), prefix='pandas', excludes=["*.pyc"])
a.datas += dict_tree
a.binaries = filter(lambda x: 'pandas' not in x[0], a.binaries)
dict_tree = Tree('C:\\HOMEWARE\\Anaconda3-Windows-x86_64\\deskapp\\Code\\kv Scripts', prefix='kv Scripts', excludes=["*.pyc"])
a.datas += dict_tree
dict_tree = Tree('C:\\HOMEWARE\\Anaconda3-Windows-x86_64\\deskapp\\Code\\Images_logo', prefix='Images', excludes=["*.pyc"])
a.datas += dict_tree
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='My app',
debug=False,
strip=False,
upx=True,
icon = 'C:\\HOMEWARE\\Anaconda3-Windows-x86_64\\deskapp\\Code\\Images_logo\\MyIcon.ico',
console=False )
coll = COLLECT(exe,
Tree('C:\\HOMEWARE\\Anaconda3-Windows-x86_64\\share\\glew\\bin\\'),
Tree('C:\\HOMEWARE\\Anaconda3-Windows-x86_64\\share\\sdl2\\bin\\'),
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='My app')
И вот что я получаю в папке dist (где генерируется exe):
и это то, что я хочу (или что-то вродеthis):
Когда я использую cx_freeze с base = 'Win32GUI'
, мое приложение не появляется, у меня просто cx_Freeze: Pythonошибка в основном скрипте как заголовок моего приложения, и я не вижу, в чем причина.
Заранее спасибо