Fehler im Zusammenhang mit kreisförmigen Importen mit FlaskPython

Python-Programme
Anonymous
 Fehler im Zusammenhang mit kreisförmigen Importen mit Flask

Post by Anonymous »

Ich habe also einen Flask -Code, zwei betroffene Dateien sind flask_app.py und der andere ist Routen.py. Der geworfene Fehler reichte von < /p>
Error running WSGI application
2025-03-16 23:05:30,980: ImportError: cannot import name 'app' from partially initialized module 'flask_app' (most likely due to a circular import) (/home/Winternet/mysite/flask_app.py)
2025-03-16 23:05:30,980: File "/var/www/winternet_pythonanywhere_com_wsgi.py", line 16, in
2025-03-16 23:05:30,981: File "/home/Winternet/mysite/flask_app.py", line 7, in
2025-03-16 23:05:30,981: import routes
2025-03-16 23:05:30,981:
2025-03-16 23:05:30,981: File "/home/Winternet/mysite/routes.py", line 4, in
2025-03-16 23:05:30,981: from flask_app import app, dbx
2025-03-16 23:05:30,981: ***************************************************
2025-03-16 23:05:30,982: If you're seeing an import error and don't know why,
2025-03-16 23:05:30,982: we have a dedicated help page to help you debug:
2025-03-16 23:05:30,982: https://help.pythonanywhere.com/pages/D ... portError/
2025-03-16 23:05:30,982: ***************************************************
< /code>
zu < /p>
rror running WSGI application
2025-03-11 01:34:01,760: ImportError: cannot import name 'restricted_users' from partially initialized module 'flask_app' (most likely due to a circular import) (/home/Winternet/mysite/flask_app.py)
2025-03-11 01:34:01,760: File "/var/www/winternet_pythonanywhere_com_wsgi.py", line 16, in
2025-03-11 01:34:01,761: from flask_app import app as application # noqa
2025-03-11 01:34:01,761:
2025-03-11 01:34:01,761: File "/home/Winternet/mysite/flask_app.py", line 69, in
2025-03-11 01:34:01,761: import routes
2025-03-11 01:34:01,761:
2025-03-11 01:34:01,762: File "/home/Winternet/mysite/routes.py", line 4, in
2025-03-11 01:34:01,762: from flask_app import app, dbx, restricted_users,sudo_users, locked_users, RECAPTCHA_SECRET_KEY, RECAPTCHA_SITE_KEY
2025-03-11 01:34:01,762: ***************************************************
2025-03-11 01:34:01,762: If you're seeing an import error and don't know why,
2025-03-11 01:34:01,762: we have a dedicated help page to help you debug:
2025-03-11 01:34:01,763: https://help.pythonanywhere.com/pages/D ... portError/
2025-03-11 01:34:01,763: ***************************************************
< /code>
Für Debugging -Zwecke ist hier der Inhalt von Flask_App.py:
from flask import Flask
import dropbox
import os
from dotenv import load_dotenv # Import dotenv
from authlib.integrations.flask_client import OAuth
from config import Config
import routes

app = Flask(__name__)
app.debug = (flask_env == 'development')
app.secret_key = 'super secret key'
DROPBOX_ACCESS_TOKEN = Config.DROPBOX_ACCESS_TOKEN
key = Config.DROPBOX_KEY
secret = Config.DROPBOX_SECRET
refresh = Config.DROPBOX_REFRESH

# Initialize Dropbox client
dbx = dropbox.Dropbox(
app_key=key,
app_secret=secret,
oauth2_refresh_token=refresh
)
# Load environment variables from .flaskenv
load_dotenv()
import routes

# Detect the Flask environment mode
flask_env = 'development' if os.path.exists('debug.txt') else 'production'
print(f"Running in {flask_env} mode") # Debug message

# TODO Add rendering of the media variably so until not scrolled its not rendered for bandwidht reduction 😂
if flask_env == 'development':
RECAPTCHA_SITE_KEY = '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI'
RECAPTCHA_SECRET_KEY ='6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe'
else:
RECAPTCHA_SITE_KEY = '6LeoUaEpAAAAAJM8e3CtUlWhmYb0GwrTMsoZsoTK'
RECAPTCHA_SECRET_KEY ='6LeoUaEpAAAAADM7HXZk9qI8CyzH8jSkJPlNnqv-'
print(f"Recaptcha Site Key: {RECAPTCHA_SITE_KEY}") # Debug message

app = Flask(__name__)
app.debug = (flask_env == 'development')
app.secret_key = 'super secret key'

last_post_time = {}

# Set up & Initialize OAuth
oauth = OAuth(app)
oauth.register(
name='google',
client_id=os.getenv('GOOGLE_CLIENT_ID'),
client_secret=os.getenv('GOOGLE_CLIENT_SECRET'),
authorize_url='https://accounts.google.com/o/oauth2/auth',
access_token_url='https://accounts.google.com/o/oauth2/token',
redirect_uri='http://localhost:8000/auth/callback',
client_kwargs={'scope': 'openid profile email'}
)

# Ici, pour les groupes et autres données, vous pourrez également migrer vers MySQL.
# Pour cet exemple, nous initialisons des listes vides.
groups = []
group_posts = []
locked_users = set()
app.config.from_object(Config)

# Set up Dropbox access token
DROPBOX_ACCESS_TOKEN = Config.DROPBOX_ACCESS_TOKEN
key = Config.DROPBOX_KEY
secret = Config.DROPBOX_SECRET
refresh = Config.DROPBOX_REFRESH

# Initialize Dropbox client
dbx = dropbox.Dropbox(
app_key=key,
app_secret=secret,
oauth2_refresh_token=refresh
)
if flask_env == 'development':
app.debug = True
else:
app.debug = False

from time import sleep

if __name__ == '__main__':
app.run(host='0.0.0.0',debug=False, port=8000)
< /code>
Und hier ist ein Ausschnitt des betroffenen Teils von Routen.py < /p>
from flask import render_template, request, session, redirect, url_for, jsonify, flash, Response
from werkzeug.utils import secure_filename
from functionsdb import DataClass, get_db_connection, read_posts, read_users
from flask_app import app, dbx
from markupsafe import Markup, escape # Ne pas enlever
import requests
import threading
import csv
from flask_app import restricted_users,sudo_users, locked_users, RECAPTCHA_SECRET_KEY, RECAPTCHA_SITE_KEY

# Constants for timing (in seconds)
POST_LIMIT = 30
EXTENDED_LIMIT = 5 * 60
min_char = 30
last_post_time = {} # Dictionary to store timestamps per user
failed_attempts = {}

PROFILE_FILE = 'profile.csv'
CSV_FILE = 'servers.csv'
< /code>
Also habe ich versucht, Importe von Ort zu Ort zu bewegen, aber das Verhalten änderte sich nur auf verschiedene Arten von (сcular -Import-) Fehlern. Ich erwartete, dass es das Problem lösen würde, wie es mir mehrere KIs erzählt hat, aber es tat es nicht.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post