The solution can be found 
at: https://groups.google.com/g/kivy-users/c/8J5-8jqy-io/m/7AG23mMTBQAJ


Op maandag 9 augustus 2021 om 16:42:28 UTC+2 schreef [email protected]:

> I have a Python 3.9 / Kivy 2.0.0 app running perfectly well on Windows10 
> within PyCharm. 
> When building the exe using PyInstaller (4.5.1) the app builds, the exe 
> starts but crashes at a certain point.
>
> Why isn't PyInstaller able to reference data_table.py correctly?
>
> *The exception is: *
>
>   File "appguides.py", line 72, in <module>
>   File "kivy\lang\builder.py", line 373, in load_string
>   File "kivy\lang\parser.py", line 402, in __init__
>   File "kivy\lang\parser.py", line 508, in parse
>   File "kivy\lang\parser.py", line 477, in execute_directives
> AttributeError: module 'pmuix' has no attribute 'data_table'
>
> *At line 72 in appguides.py I have:*
>
> from appguideskv import style, APPGVersionItem
> Builder.load_string(style)
>
> *and in appguideskv I have the following import statements:*
>
> #:import Factory kivy.factory.Factory
> #:import dp kivy.metrics.dp
> #:import PMDataTable pmuix.data_table
> #:import PMTextField pmuix.textfields
> #:import PMIconButton pmuix.iconbutton
>
> *The project structure is as follows:*
> myapp
>     > folder: pmuix
>            file: __init__.py
>            file: data_table.py
>            file: textfields.py
>            file: iconbutoon.py
>
>
>
> *this is the spec file:*
> # -*- mode: python -*-
>
> import os
> import websocket
> from os.path import join, dirname, basename
> from PyInstaller.compat import modname_tkinter
>
> from kivy import kivy_data_dir
> from kivy_deps import sdl2, glew
> from kivy.tools.packaging import pyinstaller_hooks as hooks
>
> block_cipher = None
> kivy_deps_all = hooks.get_deps_all()
> kivy_factory_modules = hooks.get_factory_modules()
> websocket_lib_path = dirname(websocket.__file__)
> websocket_cacert_file_path = join(websocket_lib_path, 'cacert.pem')
>
> analysis_data = []
>
> datas = [#(join('.', '*.kv'), '.'),
>     (join('fonts', '*.ttf'), 'fonts')]
>
> # list of modules to exclude from analysis
> excludes = ['twisted', 'pygments']
>
> # list of hiddenimports
> hiddenimports = kivy_deps_all['hiddenimports'] + ['html.parser'] + 
> ['backend_kivy'] + kivy_factory_modules + ['pandas._libs.tslibs.timedeltas']
>
> # binary data
> sdl2_bin_tocs = [Tree(p) for p in sdl2.dep_bins]
> glew_bin_tocs = [Tree(p) for p in glew.dep_bins]
> bin_tocs = sdl2_bin_tocs + glew_bin_tocs
>
> # assets
> kivy_assets_toc = Tree(kivy_data_dir, prefix=join('kivy_install', 'data'))
> source_assets_toc = Tree('images', prefix='images')
> assets_toc = [kivy_assets_toc, source_assets_toc]
>
> tocs = bin_tocs + assets_toc
>
>
> a = Analysis(['ngcmain.py'],
>              pathex=[os.getcwd(),'~/kivy/garden/matplotlib'],
>              binaries=None,
>              datas=datas,
>              hiddenimports=hiddenimports,
>              hookspath=[],
>              runtime_hooks=[],
>              excludes=excludes,
>              win_no_prefer_redirects=False,
>              win_private_assemblies=False,
>              cipher=block_cipher)
>       
> pyz = PYZ(a.pure, a.zipped_data,  cipher=block_cipher)
>
> exe1 = EXE(pyz,
>           a.scripts,
>           name='ngcreator',
>           exclude_binaries=True,
>           icon=join('images', 'ngcreator.ico'),
>           debug=False,
>           strip=False,
>           upx=True,
>           console=False)
>  
>
>
> Allen beantwoorden
> Auteur beantwoorden
> Doorsturen
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"PyInstaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pyinstaller/bf384a0a-2b45-498d-96dc-b4e4ce4bab66n%40googlegroups.com.

Reply via email to