python-eel / Eel

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

Error while running the eel project exe file with no console #700

Open Satya9348 opened 10 months ago

Satya9348 commented 10 months ago

I have converted my eel project to an executable file with console and It is running smoothly. But whenever I tries it with no console it makes an exe file but gives me error whenever I opens it. The error is below. Traceback (most recent call last): File "main.py", line 1, in File "", line 1178, in _find_and_load File "", line 1149, in _find_and_load_unlocked File "", line 690, in _load_unlocked File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module File "eel__init__.py", line 15, in File "", line 1178, in _find_and_load File "", line 1149, in _find_and_load_unlocked File "", line 690, in _load_unlocked File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module File "bottle.py", line 73, in AttributeError: 'NoneType' object has no attribute 'write'

Plese help me with it...

gxsshallot commented 10 months ago

same issue +1

artydev commented 9 months ago

same issue +1

plusseed commented 7 months ago

Eel is importing a bottle, but AttributeError cannot be caught in bottle.py

https://docs.python.org/3.11/library/sys.html?highlight=sys#module-sys

It is written as below.

Note Under some conditions stdin, stdout and stderr as well as the original values __stdin__, __stdout__ and __stderr__ can be None. It is usually the case for Windows GUI apps that aren’t connected to a console and Python apps started with pythonw.

There is also a way to edit bottle.py directly, but I assign null to stdout and stderr and throw it away.

import os
import sys
sys.stdout = open(os.devnull, 'w')
sys.stderr = open(os.devnull, 'w')
import eel

Sorry, Generated by translation

plusseed commented 7 months ago

related issue #654, #698

gorkemgul commented 6 months ago

Eel is importing a bottle, but AttributeError cannot be caught in bottle.py

https://docs.python.org/3.11/library/sys.html?highlight=sys#module-sys

It is written as below.

Note Under some conditions stdin, stdout and stderr as well as the original values __stdin__, __stdout__ and __stderr__ can be None. It is usually the case for Windows GUI apps that aren’t connected to a console and Python apps started with pythonw.

There is also a way to edit bottle.py directly, but I assign null to stdout and stderr and throw it away.

import os
import sys
sys.stdout = open(os.devnull, 'w')
sys.stderr = open(os.devnull, 'w')
import eel

Sorry, Generated by translation

definitely works, much obliged.