Setup Python App
Jak uruchomić aplikację Python (Django, Flask, FastAPI) na IQHost — Python Selector, WSGI/ASGI, virtualenv, pip, deploy.
Python aplikacje (Django, Flask, FastAPI) na IQHost — przez CloudLinux Python Selector. Podobny mechanizm jak Node.js: wybierz wersję, folder, entry point, IQHost uruchomi.
Co zyskasz
- Uruchomisz aplikację Python (Django/Flask) na IQHost.
- Skonfigurujesz virtualenv, pip packages, WSGI.
- Wdrożysz z git lub FTP.
Wymagania wstępne
- Pakiet IQHost z Python Selector (zwykle HS5+).
- Aplikacja Python.
Wskazówka
Python na shared hosting — działa, ale ograniczenia podobne do Node.js (1 worker, RAM limity LVE). Dla heavy compute — VPS.
Krok 1: Otwórz Python Selector
Dodatkowe funkcje → Setup Python App.
![]()
Krok 2: Create Application
- Python version — 3.9, 3.10, 3.11, 3.12
- Application root — folder (np.
apps/django-blog)- Application URL — pod jakim URL (subdomena albo path)
- Application startup file — WSGI entry (
passenger_wsgi.py)- Application entry point — funkcja (
applicationzwykle)
Krok 3: Wypełnij — przykład Django
Python version: 3.11 Application root: apps/django-blog Application URL: blog.mojafirma.pl Startup file: passenger_wsgi.py Entry point: applicationKlik Create. Po utworzeniu masz:
- Folder
apps/django-blog/- Plik
passenger_wsgi.py(template)- Virtualenv automatycznie tworzony
Krok 4: passenger_wsgi.py (Django)
import sys import os # Dodaj projekt do path INTERP = "/home/host36592/virtualenv/django-blog/3.11/bin/python" if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv) sys.path.insert(0, os.path.dirname(__file__)) # Django settings os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myblog.settings') from django.core.wsgi import get_wsgi_application application = get_wsgi_application()Flask
import sys INTERP = "/home/host36592/virtualenv/flask-app/3.11/bin/python" if sys.executable != INTERP: sys.executable = INTERP sys.path.insert(0, '/home/host36592/apps/flask-app') from app import app as application
Krok 5: Install dependencies
W Python Selector → Run Pip Install → wskaż
requirements.txtw folderze app.CloudLinux instaluje wszystkie pip packages do virtualenv.
Albo SSH:
source /home/host36592/virtualenv/django-blog/3.11/bin/activate pip install -r requirements.txt
Krok 6: Environment variables
W panelu — dodaj env vars (DJANGO_SETTINGS_MODULE, SECRET_KEY, DB credentials).
Krok 7: Static files (Django)
Django potrzebuje statycznych plików w publiczym folderze. W
settings.py:STATIC_URL = '/static/' STATIC_ROOT = '/home/host36592/domains/mojafirma.pl/public_html/static/'Potem:
python manage.py collectstaticStatic files w
public_html/static/— serwowane bezpośrednio przez LiteSpeed (szybciej niż przez Django).
Krok 8: Database migrations
python manage.py migrate python manage.py createsuperuserTworzy tabele Django + admin user.
Krok 9: Restart app
W panelu Python Selector → Restart App. Lub touch passenger file:
touch /home/host36592/apps/django-blog/tmp/restart.txtLiteSpeed Passenger zauważa i restartuje.
Frameworki
Flask (minimalny)
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello from IQHost!'
if __name__ == '__main__':
app.run()
FastAPI
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
return {"message": "Hello World"}
WSGI dla FastAPI wymaga workaround (ASGI through wsgiref), albo lepiej: subdomena z proxy.
Django
Pełen MVC framework, najpopularniejszy.
Najczęstsze problemy
1. „Application not starting"
- Sprawdź logi w panelu Python Selector
- Pythona błąd w
passenger_wsgi.py(typowa: zła ścieżka virtualenv) - Brak pakietu —
pip install requirements.txt
2. „Static files 404"
- Sprawdź
STATIC_URLw settings collectstaticwykonany?- Plik fizycznie istnieje w
public_html/static/?
3. „Database error"
- DB credentials w settings dokładne?
- DB host =
localhost, nie remote - Migrations wykonane (
python manage.py migrate)
4. „WSGI worker died"
LVE może zabijać proces. Optymalizuj memory, sprawdź Resource Usage.
5. „Mogę używać Celery / async workers?"
Trudne na shared hosting (długo-żyjące procesy). Dla async — VPS.
6. „pip install fails"
- Niektóre packages wymagają system libraries (Pillow → libjpeg) — może wymagać supportu
--no-binary :all:może pomóc dla problematycznych- Niektóre pakiety nie skompilują się bez root
7. „WhiteNoise vs collectstatic"
WhiteNoise — middleware Django serwujący static z aplikacji. Działa, ale wolniej niż LiteSpeed direct. Zalecane: collectstatic + LiteSpeed.
Słowniczek
- WSGI — Web Server Gateway Interface, standard dla Pythona web.
- ASGI — Asynchronous WSGI (FastAPI, Django channels).
- Passenger — proces manager używany przez LiteSpeed dla Python/Ruby.
- Virtualenv — izolowane środowisko Python.
- CloudLinux Python Selector — narzędzie zarządzające Python apps.
Related
Feedback
Czy ten artykuł pomógł?
