Spaces:
Running
Running
# This is a bridging file for Hugging Face Spaces | |
# It ensures that when the container starts, your Django app will run correctly | |
import os | |
import sys | |
import subprocess | |
import logging | |
import traceback | |
# Configure more detailed logging | |
logging.basicConfig( | |
level=logging.INFO, | |
format='%(asctime)s [%(levelname)s] %(name)s: %(message)s', | |
handlers=[ | |
logging.StreamHandler(), | |
logging.FileHandler('app.log') | |
] | |
) | |
logger = logging.getLogger(__name__) | |
if __name__ == "__main__": | |
try: | |
# Make sure we're using the correct port | |
port = os.environ.get("PORT", "7860") | |
logger.info(f"Starting Django server on port {port}") | |
# Check environment | |
logger.info(f"Python version: {sys.version}") | |
logger.info(f"Working directory: {os.getcwd()}") | |
# Start the Django development server | |
# For better production deployment, consider using gunicorn | |
logger.info("Launching Django server") | |
subprocess.run( | |
["python", "manage.py", "runserver", f"0.0.0.0:{port}"], | |
check=True | |
) | |
except subprocess.CalledProcessError as e: | |
logger.error(f"Django server failed with exit code {e.returncode}") | |
logger.debug(f"Command output: {e.output if hasattr(e, 'output') else 'No output captured'}") | |
sys.exit(1) | |
except Exception as e: | |
logger.error(f"Error starting Django server: {e}") | |
logger.debug(traceback.format_exc()) | |
sys.exit(1) | |