Ask coding questions

← Back to all posts
Can't import fLASK
romainkarpinski (0)

Hi, when i try to import flask, it says that the current flask version is not compatible with the current repl version.. what should i do? is it possible to fix this? ty for your help

Comments
hotnewtop
Coder100 (18915)

try deleting these files and installing again

xfinnbar (149)

THe replit package includes it's own Flask fork. Instead of using from flask import Flask use from replit.web import App and use app = App(__name__) instead of app = Flask(__name__). This flask fork adds a few new features like login with replit for your site. See its docs here https://replit-py.readthedocs.io/en/latest/index.html

romainkarpinski (0)

@xfinnbar it fixed most of my problems ty, but now i get this error mesage: ValueError: signal only works in main thread .. How can i fix this?

romainkarpinski (0)

@xfinnbar File "/usr/lib/python3.8/signal.py", line 47, in signal
handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler)), this is the last file mentionned in the log before the error message

romainkarpinski (0)

@xfinnbar full log:

  • Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
    Exception in thread Thread-1:
    Traceback (most recent call last):
    File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
    File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(self._args, self._kwargs)
    File "/home/runner/BOT/keep_alive.py", line 11, in run
    app.run()
    File "/opt/virtualenvs/python3/lib/python3.8/site-packages/replit/web/app.py", line 147, in run
    super().run(host="localhost" if localhost else "0.0.0.0", port=port,
    kwargs)
    File "/opt/virtualenvs/python3/lib/python3.8/site-packages/flask/app.py", line 990, in run
    run_simple(host, port, self, **options)
    File "/opt/virtualenvs/python3/lib/python3.8/site-packages/werkzeug/serving.py", line 1050, in run_simple
    run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
    File "/opt/virtualenvs/python3/lib/python3.8/site-packages/werkzeug/_reloader.py", line 330, in run_with_reloader
    signal.signal(signal.SIGTERM, lambda
    args: sys.exit(0))
    File "/usr/lib/python3.8/signal.py", line 47, in signal
    handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
    ValueError: signal only works in main thread
xfinnbar (149)

@romainkarpinski I forked the repl and fixed it, copy across my pyproject.toml file and keep_alive.py file. https://replit.com/@xfinnbar/BOT#keep_alive.py

romainkarpinski (0)

@xfinnbar it works perfectly, ty so much for helping me :)

IOP3 (847)

rlly? just import it like from flask import Flask? is it not working?

romainkarpinski (0)

@IOP3 No... and i don't know why..

romainkarpinski (0)

@IOP3 Because replit (3.0.0) depends on flask (>=1.1.2,<2.0.0)
and no versions of replit match >3.0.0,<4.0.0, replit (>=3.0.0,<4.0.0) requires flask (>=1.1.2,<2.0.0).
So, because repl-python3-bot depends on both replit (^3.0.0) and flask (^2.0.0), version solving failed.
exit status 1