python-eel / Eel

A little Python library for making simple Electron-like HTML/JS GUI apps
MIT License
6.38k stars 583 forks source link

browser pops up before server is properly initialized #561

Open WhimsicalWhale opened 2 years ago

WhimsicalWhale commented 2 years ago

I'm attempting to get a currently existing eel project to work on RHEL 8. I'm using python3.8 to run the GUI, and just installed eel via pip. When I start the program, it pops open a browser that gives an error that it cannot connect to the server. If I wait a couple seconds, I can refresh the page and the program works as expected from there.

As for a code snippet, I'm not entirely sure where the relevant parts would be, so here's where I initialize and launch the program. If you can point me in a better direction, I'd love to hear it.

# I promise I have the relevant imports...
if __name__ == '__main__':
    multiprocessing.freeze_support()
    print(eel._get_real_path('GUI/web'))
    eel.init('GUI/web')
    eel.start('main.html', size=(1366, 780), port=9999, cmdline_args=['--allow-file-access-from-files', os.getcwd()], mode='default')

Desktop:

WhimsicalWhale commented 2 years ago

As an update, I did more researched and asked around to others I know who have used eel in the past, and it looks like a temporary solution to my problem is require users have Chrome or Chromium installed and allow eel to use the default behavior of opening in app mode with Chrome or Chromium. However, I don't think this is an ideal solution, as a Chromium install is a rather large requirement for the sort of program I'm writing. Is there a setting I'm missing that I could use, or is this something that I'll have to deal with when using eel?

eddyizm commented 2 years ago

I believe you can check for other browsers before defaulting to chrome.

WhimsicalWhale commented 2 years ago

You are correct and that is what I ended up doing, but it still leaves the problem of the browser popping up before the server is ready if the user doesn't have chrome installed.