Pyforms and PyInsaller error
Closed this issue · 1 comments
HI, I'm trying to make an executable with PyInstaller, the test app works just fine when executed directly with python but instead, the compiled exe give me this error
C:\Users\Simone\Sviluppo\Tutorials\python\pyforms_test\dist>example.exe
Traceback (most recent call last):
File "example.py", line 1, in
File "", line 971, in _find_and_load
File "", line 955, in _find_and_load_unlocked
File "", line 665, in load_unlocked
File "c:\users\simone.virtualenvs\pyforms_test-b9tyrkwk\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 631, in exec_module
exec(bytecode, module.dict)
File "site-packages\pyforms_init.py", line 6, in
File "site-packages\pyforms\utils\settings_manager.py", line 22, in add
File "site-packages\pyforms\utils\settings_manager.py", line 16, in __load_module
AttributeError: module 'pyforms' has no attribute 'settings'
[12552] Failed to execute script example
that's my very basic test app code
import pyforms
from pyforms import BaseWidget
from pyforms.controls import ControlText
from pyforms.controls import ControlButton
from pyforms.controls import ControlFile
class Example(BaseWidget):
def __init__(self):
BaseWidget.__init__(self, 'Example')
# fields
self._uno = ControlText('Uno', '1')
self._due = ControlText('Due', '2')
self._tre = ControlText('Tre', '3')
self._full = ControlText('Full')
self._button = ControlButton('Press me!')
self._file = ControlFile('File')
# layout
self.formset = [
{
'Tab1': ['_uno', '||', '_due', '||', '_tre'],
'Tab2': ['_full'],
'Tab3': ['_file']
},
'=',
(' ', '_button', ' ')
]
# menu
self.mainmenu = [
{
'File': [
{'Open': self.__openEvent},
'-',
{'Save': self.__saveEvent},
{'Save as': self.__saveAsEvent}
]
},
{
'Edit': [
{'Copy': self.__editEvent},
{'Past': self.__pastEvent}
]
}
]
# pops
path = self._full.add_popup_submenu('Path')
self._full.add_popup_menu_option('Dummy1', self.__dummyEvent1, submenu=path)
self._full.add_popup_menu_option('Dummy2', self.__dummyEvent2, submenu=path)
# actions
self._button.value = self.__buttonAction
# events
self._file.changed_event = self.__fileAction
def __buttonAction(self):
self._full.value = '{} {} {}'.format(self._uno.value, self._due.value, self._tre.value)
def __fileAction(self):
self._full.value = self._file.value
def __openEvent(self):
pass
def __saveEvent(self):
pass
def __saveAsEvent(self):
pass
def __editEvent(self):
pass
def __pastEvent(self):
pass
def __dummyEvent1(self):
self._full.value = 'UNO'
def __dummyEvent2(self):
self._full.value = 'DOS'
if __name__ == '__main__':
pyforms.start_app(Example, geometry=(500, 500, 300, 100))