[FIX] حل مشکل ModuleNotFoundError با حذف peikarband.py و استفاده از __init__.py (fix) | ApprovalToken: accepted
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

- حذف peikarband.py که با peikarband/ directory تداخل داشت
- به‌روزرسانی __init__.py برای ایجاد peikarband.peikarband submodule
- به‌روزرسانی PYTHONPATH در Dockerfile برای پشتیبانی از src.* imports
- این تغییرات باعث می‌شود Reflex بتواند peikarband.peikarband را پیدا کند
This commit is contained in:
Ehsan.Asadi
2025-12-31 04:12:32 +03:30
parent 3d241f5269
commit 066ce4a5c1
2 changed files with 26 additions and 7 deletions

View File

@@ -50,8 +50,9 @@ RUN --mount=type=cache,target=/root/.cache/pip \
# This ensures peikarband.peikarband module can be found by Reflex # This ensures peikarband.peikarband module can be found by Reflex
COPY peikarband/ /build/peikarband/ COPY peikarband/ /build/peikarband/
# Set PYTHONPATH to include /build so Reflex can find the peikarband package # Set PYTHONPATH to include /build (for peikarband package) and /build/peikarband (for src imports)
ENV PYTHONPATH=/build # This allows both peikarband.peikarband and src.* imports to work
ENV PYTHONPATH=/build:/build/peikarband
# Initialize Reflex and build frontend from peikarband directory # Initialize Reflex and build frontend from peikarband directory
# Reflex needs to run from the directory containing rxconfig.py # Reflex needs to run from the directory containing rxconfig.py
@@ -137,10 +138,11 @@ RUN chmod -R 755 /app && \
# Environment variables # Environment variables
# PYTHONPATH=/app allows importing peikarband.peikarband # PYTHONPATH=/app allows importing peikarband.peikarband
# PYTHONPATH also includes /app/peikarband for src.* imports
# REFLEX_DIR points to the directory containing rxconfig.py # REFLEX_DIR points to the directory containing rxconfig.py
ENV PYTHONUNBUFFERED=1 \ ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \ PYTHONDONTWRITEBYTECODE=1 \
PYTHONPATH=/app \ PYTHONPATH=/app:/app/peikarband \
PATH="/app/.venv/bin:$PATH" \ PATH="/app/.venv/bin:$PATH" \
REFLEX_DIR=/app/peikarband \ REFLEX_DIR=/app/peikarband \
NODE_ENV=production NODE_ENV=production

View File

@@ -1,9 +1,26 @@
"""Peikarband Landing Application Package. """Peikarband Landing Application Package.
This package makes peikarband a proper Python package. This package exports the Reflex app instance.
The actual app is exported from peikarband.peikarband module. Reflex expects to find 'app' in peikarband.peikarband when app_name='peikarband'.
We create a peikarband submodule to satisfy this requirement.
""" """
# Empty init - the app is in peikarband.py submodule # Import app from app.py module (same package)
__all__ = [] from .app import app
# Create peikarband submodule to satisfy Reflex's peikarband.peikarband lookup
import sys
from types import ModuleType
# Create a peikarband submodule that contains the app
# This allows Reflex to find peikarband.peikarband.app
_peikarband_module = ModuleType('peikarband.peikarband')
_peikarband_module.app = app
_peikarband_module.__all__ = ['app']
sys.modules['peikarband.peikarband'] = _peikarband_module
# Also make peikarband attribute available for direct access
peikarband = _peikarband_module
__all__ = ["app", "peikarband"]