Probleme beim import von Modulen in einer Flask app!

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Faceman89
User
Beiträge: 4
Registriert: Freitag 26. April 2024, 19:59
Wohnort: Beckingen

Hallo zusammen,

Ich bin neu auf dem Forum und Programmiere noch nicht lange Python,
Eigentlich hab ich das Projekt aus einem Tutorial und etwas für meine Zwecke angepasst.
Ich habe gefühlt das ganze Internet durchsucht aber komme zu keiner Lösung für mein Problem.
Ich versuche auf einem Linux Server (Ubuntu 22.04) eine Python Flask App laufen zu lassen. Hier hat auch alles bis heute funktioniert, lokal auf dem Laptop funktioniert auch alles immer noch einwandfrei, nur auf dem Server gibt´s auf einmal Probleme!
Ich habe über Import von flask_sqlalchemy und flask_login funktionen implementiert.
jedoch werden die Module auf dem Servernicht gefunden!
Ich verwende Gunicorn zum Starten der App, Python version ist 3.10 und Flask ist auch alles installiert.
Siehe hier: -->

Package Version
----------------- -------
alembic 1.13.1
blinker 1.7.0
click 8.1.7
Flask 3.0.3
Flask-Login 0.6.3
Flask-Migrate 4.0.7
Flask-SQLAlchemy 3.1.1
greenlet 3.0.3
gunicorn 22.0.0
itsdangerous 2.2.0
Jinja2 3.1.3
Mako 1.3.3
MarkupSafe 2.1.5
packaging 24.0
pip 22.0.2
setuptools 59.6.0
SQLAlchemy 2.0.29
typing_extensions 4.11.0
Werkzeug 3.0.2

(venv) root@ubuntu:~/Test/flask-app# python3 --version
Python 3.10.12
(venv) root@ubuntu:~/Test/flask-app# gunicorn --version
gunicorn (version 20.1.0)

Laut Internet sind die Versionen auch so kompatibel.

Dieser Fehler kommt beim Ausführen -->
(venv) root@ubuntu:~/Test/flask-app# gunicorn -w 4 'website:create_app()'
[2024-04-26 19:11:18 +0000] [81211] [INFO] Starting gunicorn 20.1.0
[2024-04-26 19:11:18 +0000] [81211] [INFO] Listening at: http://127.0.0.1:8000 (81211)
[2024-04-26 19:11:18 +0000] [81211] [INFO] Using worker: sync
[2024-04-26 19:11:18 +0000] [81212] [INFO] Booting worker with pid: 81212
[2024-04-26 19:11:18 +0000] [81212] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/lib/python3/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/lib/python3/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/lib/python3/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/lib/python3/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/lib/python3/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/lib/python3/dist-packages/gunicorn/util.py", line 384, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/root/Test/flask-app/website/__init__.py", line 1, in <module>
import flask_sqlalchemy
ModuleNotFoundError: No module named 'flask_sqlalchemy'
[2024-04-26 19:11:18 +0000] [81212] [INFO] Worker exiting (pid: 81212)
[2024-04-26 19:11:18 +0000] [81211] [INFO] Shutting down: Master
[2024-04-26 19:11:18 +0000] [81211] [INFO] Reason: Worker failed to boot.


Falls mir hierbei jemand einen Hinweis geben könnte oder sagen wie ich es besser machen kann wäre ich sehr dankbar ...
MFG Jens
Benutzeravatar
__blackjack__
User
Beiträge: 13144
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wo kommt denn die Liste mit den installierten Modulen her? Denn dort steht „gunicorn 22.0.0“. In dem venv ist aber laut Deinen eigenen Angaben

Code: Alles auswählen

(venv) root@ubuntu:~/Test/flask-app# gunicorn --version
gunicorn (version 20.1.0)
Die Liste ist dann ja offenbar nicht aus diesem venv, aber *da* muss ja flask_sqlalchemy installiert sein.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Faceman89
User
Beiträge: 4
Registriert: Freitag 26. April 2024, 19:59
Wohnort: Beckingen

Da hast du recht … ich hab das jetzt in der venv nochmal gecheckt … aber da ist garkein gunicorn eingetragen :/
Aber er zeigt trotzdem ne Version an … das versteh ich nicht ?
Der Fehler bleibt der selbe wie zuvor !

(venv) root@ubuntu:~/Test/flask-app# pip3 list
Package Version
----------------- -------
blinker 1.7.0
click 8.1.7
Flask 3.0.3
Flask-Login 0.6.3
Flask-SQLAlchemy 3.1.1
greenlet 3.0.3
itsdangerous 2.2.0
Jinja2 3.1.3
MarkupSafe 2.1.5
pip 22.0.2
setuptools 59.6.0
SQLAlchemy 2.0.29
typing_extensions 4.11.0
Werkzeug 3.0.2
(venv) root@ubuntu:~/Test/flask-app# gunicorn --version
gunicorn (version 20.1.0)
(venv) root@ubuntu:~/Test/flask-app# python3 --versionPython 3.10.12
(venv) root@ubuntu:~/Test/flask-app#
(venv) root@ubuntu:~/Test/flask-app# gunicorn -w 4 'website:create_app()'
[2024-04-26 21:29:41 +0000] [81849] [INFO] Starting gunicorn 20.1.0
[2024-04-26 21:29:41 +0000] [81849] [INFO] Listening at: http://127.0.0.1:8000 (81849)
[2024-04-26 21:29:41 +0000] [81849] [INFO] Using worker: sync
[2024-04-26 21:29:41 +0000] [81850] [INFO] Booting worker with pid: 81850
[2024-04-26 21:29:41 +0000] [81850] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/lib/python3/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/lib/python3/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/lib/python3/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/lib/python3/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/lib/python3/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/lib/python3/dist-packages/gunicorn/util.py", line 384, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/root/Test/flask-app/website/__init__.py", line 1, in <module>
import flask_sqlalchemy
ModuleNotFoundError: No module named 'flask_sqlalchemy'
[2024-04-26 21:29:41 +0000] [81850] [INFO] Worker exiting (pid: 81850)
[2024-04-26 21:29:41 +0000] [81851] [INFO] Booting worker with pid: 81851
[2024-04-26 21:29:41 +0000] [81851] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/usr/lib/python3/dist-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/usr/lib/python3/dist-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/lib/python3/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/lib/python3/dist-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/lib/python3/dist-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/lib/python3/dist-packages/gunicorn/util.py", line 384, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/root/Test/flask-app/website/__init__.py", line 1, in <module>
import flask_sqlalchemy
ModuleNotFoundError: No module named 'flask_sqlalchemy'
[2024-04-26 21:29:41 +0000] [81851] [INFO] Worker exiting (pid: 81851)
[2024-04-26 21:29:41 +0000] [81849] [WARNING] Worker with pid 81851 was terminated due to signal 15
[2024-04-26 21:29:42 +0000] [81849] [INFO] Shutting down: Master
[2024-04-26 21:29:42 +0000] [81849] [INFO] Reason: Worker failed to boot.
(v
Benutzeravatar
__blackjack__
User
Beiträge: 13144
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das ist, wenn man sich die Pfade anschaut, offenbar ein gunicorn das über ein Paket der Linuxdistribution installiert wurde.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Faceman89
User
Beiträge: 4
Registriert: Freitag 26. April 2024, 19:59
Wohnort: Beckingen

Okay … das heißt dann wenn ich in die Venv das gunicorn neu installiere in der richtigen Version dann müsste es klappen ?
Versuch ich später …
Danke schon mal für die Hilfe 👌
Faceman89
User
Beiträge: 4
Registriert: Freitag 26. April 2024, 19:59
Wohnort: Beckingen

Sehr geil 🤩
Danke für die Hilfe ! Hat daran gelegen …
Jetzt hab ich wieder was dazu gelernt 👌
Antworten