Webbhotell med Python-stöd

Python är ett av de mest populära programmeringsspråken för webbutveckling, men att hitta ett webbhotell som verkligen stödjer det är inte alltid enkelt. Python-stöd kräver en annan serverarkitektur än vad standardpaket erbjuder: WSGI-protokollet, Passenger-modulen och möjligheten att köra en egen Python-process.

För dig som vill driftsätta ett Django- eller Flask-projekt på delad hosting gäller det att ställa rätt krav redan från start. Kan du installera paket via pip? Får du skapa ett virtualenv? Vi har samlat de hostar som ger vettiga svar.

Läs om hur vi testar och betygsätter

Webbhotell med Python - WSGI-miljö eller bara CGI

Python-stöd på delat webbhotell spänner från en riktig WSGI-miljö där Django och Flask kan köra, till ren CGI-skriptkörning som passar enstaka skript men inte en applikation. Skillnaden är stor och sällan utskriven i marknadsföringen, så vi gör det här.

Skillnaden som avgör är om du får en modern WSGI-miljö för till exempel Django eller Flask, eller bara CGI-skriptkörning. Vi skriver ut vilket som gäller. Så gör vi bedömningen

  1. WSGI via cPanel Testat av oss Betyg 4,80

    Oderland låter dig starta en Python-applikation via cPanels apphanterare, med SSH och cron, från servrar i Göteborg för 215 kronor i månaden. Det räcker för Django och Flask. Instegspriset är dock dyrast bland de svenska valen.

    Standard Från 196,00SEK per månad Samma pris vid förnyelse Till Oderland
  2. Python-app till lågt pris Granskat, ej testat Betyg 4,30

    HostUps Start kör Python-applikationer med SSH och cron från 79 kronor i månaden vid förnyelse, med servrar i Älvsjö. Billigast av de svenska för en riktig miljö. Supporten är chatt och e-post, ingen telefon om en beroendekonflikt uppstår.

    Start Från 59,00SEK per månad Förnyas 79,00 SEK Till HostUp
  3. Python och stort utrymme Granskat, ej testat Betyg 4,10

    Infomaniak kör Python via en egen applikationshanterare med 250 gigabyte NVMe för 5,75 euro i månaden utan förnyelsehopp. Gott om plats för virtuella miljöer. Datacentren står i Schweiz och supporten är inte på svenska.

    Web Hosting Från 5,75EUR per månad Samma pris vid förnyelse Läs mer
  4. Python och dygnet runt Granskat, ej testat Betyg 4,10

    SiteGrounds StartUp kör Python med SSH och support dygnet runt för 15,99 euro i månaden vid förnyelse. Introduktionspriset 2,99 euro gäller bara första perioden, och lagringen stannar på 10 gigabyte, vilket begränsar större projekt.

    StartUp Från 2,99EUR per månad Förnyas 15,99 EUR Läs mer
  5. Bara CGI, inte WSGI Granskat, ej testat Betyg 4,00

    Hetzners Webhosting L kör Python som CGI-skript, inte i en modern WSGI-miljö, för 8 euro i månaden med tyska datacenter. Det passar enstaka skript men inte en Django-app. Det är billigt och ärligt, men inte det du vill ha för en applikation.

    Webhosting L Från 8,00EUR per månad Samma pris vid förnyelse Läs mer
Jämför alla webbhotell för Python Öppnar jämförelsen med filtren redan satta

Priser anges exklusive moms i leverantörens egen valuta, och avser det paket som bäst uppfyller facettens krav. Baslinjen är ett års bindning delat med tolv.

Python på webbhotell fungerar, men inte som PHP

Python är ett av de mest använda programmeringsspråken i världen, men det beter sig annorlunda på ett webbhotell än vad många förväntar sig. Till skillnad från PHP, som länge har körts inbyggt i webbservrar, kräver Python en körande applikationsprocess. Det innebär att stödet varierar kraftigt mellan olika hostingleverantörer och att det finns reella begränsningar att hålla reda på.

Det vanligaste sättet att köra Python på delad hosting är via Phusion Passenger, en applikationsserver som cPanel integrerar under namnet "Setup Python App". Du väljer Python-version, pekar ut din applikationsmapp och applikationens startfil. Passenger startar en Python-process vid inkommande trafik och hanterar omstarter automatiskt. Hela upplägget är smidigt för den som aldrig konfigurerat en webbserver manuellt, men döljer en del begränsningar under ytan.

WSGI (Web Server Gateway Interface) är standarden som knyter ihop Python-applikationer med webbservern. Django och Flask implementerar båda WSGI, vilket gör att de fungerar direkt med Passenger utan extra konfiguration. Du skapar en virtualenv (en isolerad Python-miljö) i applikationsmappen, installerar dina paket via pip och Passenger sköter resten. SSH-åtkomst är ett krav för att detta ska fungera i praktiken.

Virtualenv och versionshantering

En virtualenv isolerar ditt projekts paketberoenden från systemets globala Python-installation. Det är standardförfarande och cPanels Python-selektor skapar en automatiskt när du lägger upp en ny applikation. Vilka Python-versioner som faktiskt finns tillgängliga varierar mer mellan leverantörer än man kan tro. Vissa hostar erbjuder 3.9 och 3.11 medan 3.13 saknas helt. Kontrollera versionslistan hos din specifika leverantör innan du börjar bygga ett projekt som kräver en nyare version.

Att uppgradera Python-version på en befintlig applikation kräver att du skapar en ny virtualenv och installerar om alla paket, vilket kan innebära att beroenden som fungerade på 3.10 inte längre fungerar på 3.12. Planera versionshanteringen tidigt. Läs mer om krav på webbhotell för utvecklare om du jobbar med komplexa beroenden.

Vanliga användningsfall för Python på webbhotell

Python är inte ett enda verktyg utan ett ekosystem av ramverk och bibliotek. Här är de fyra typerna av Python-projekt vi ser oftast och hur bra de lämpar sig för delad hosting.

Django

Djangos "batteries included"-filosofi med inbyggt ORM, admin-gränssnitt och autentisering passar webbapplikationer med databas. Det fungerar på delad hosting via WSGI och Passenger, men ORM-tunga operationer och bakgrundsjobb med Celery passar bättre på en VPS. Statiska filer behöver hanteras separat.

Flask och FastAPI

Lättviktiga mikroramverk som Flask och FastAPI startar snabbt och har lågt minnesfotavtryck. FastAPI är byggt på ASGI snarare än WSGI, vilket innebär att stödet varierar. Flask via WSGI fungerar pålitligt på de flesta hostar med Passenger-stöd och är ett bra val för enklare webb-API:er och prototyper.

Skript och automation

Cron-baserade Python-skript för datainhämtning, rapportering eller e-postutskick fungerar på de flesta webbhotell utan att WSGI ens är involverat. Du lägger upp skriptet, skapar ett cron-jobb i cPanel och pekar mot din Python-installation. Det enklaste och mest stabila användningsfallet av Python på delad hosting.

Dataanalys och rapporter

Pandas, NumPy och liknande tyngre bibliotek installeras via pip i en virtualenv, men kan ha ett stort minnesfotavtryck vid körning. På delad hosting med snäva minnesgränser fungerar det bra för sporadisk körning via cron, men sämre för realtidsanalys i en webbapplikation med hög trafik.

En sak som sällan framgår av en hosts prissida är hur resurserna faktiskt fördelas. På delad hosting delar du CPU och minne med hundratals andra konton. Python-processer som aktiveras via Passenger kan vara inaktiva länge och sedan ta lite tid att starta upp igen, något som kallas "cold start". Det är sällan ett problem för intern verktygsanvändning men kan märkas om du bygger en publik webbapp med sporadisk trafik.

Bakgrundsjobb är ett mer fundamentalt hinder. Celery, Django Q och liknande köhanterare kräver egna långkörande processer som inte går att köra på delad hosting utan extra lösningar. Om din applikation behöver asynkron bearbetning av uppgifter är VPS-hosting det ärliga alternativet.

ASGI-ramverk fungerar inte alltid

FastAPI och Starlette är byggda på ASGI, inte WSGI. Passenger stöder primärt WSGI och det varierar om det finns ASGI-stöd hos din leverantör. Kontrollera explicit att din host stöder ASGI, eller välj ett WSGI-kompatibelt ramverk som Flask om du vill vara säker på delad hosting. Att testa lokalt med Uvicorn och sedan flytta till en host utan ASGI-stöd ger en obehaglig överraskning.

VPS passar bättre för Python i produktion

För Python-applikationer med reella krav på prestanda, bakgrundsjobb eller WebSockets är en VPS ett mer hållbart val. Du sätter upp Gunicorn eller Uvicorn som applikationsserver, Nginx som reverse proxy och hanterar processer med systemd. Det ger full kontroll över Python-version, minnesgränser och miljövariabler. Startpriset för en enkel VPS hos svenska leverantörer som GleSYS eller Hetzner är jämförbart med ett mellannivå-webbhotell, men kapaciteten och flexibiliteten är betydligt större.

Vanliga frågor om Python-hosting

Svar på det som faktiskt avgör om din Python-app fungerar på delad hosting.

Django och Flask på delad hosting

Django fungerar på delad hosting om värdtjänsten erbjuder WSGI-stöd via Phusion Passenger, SSH-åtkomst och möjlighet att skapa ett virtualenv. Det är en kortare lista än det låter, men i praktiken är det ganska få delade hostar som uppfyller alla tre kraven. Den vanligaste fallgropen är att hosten säger sig stödja Python men egentligen bara menar CGI-exekvering, vilket varken fungerar med Djangos routing eller dess databasabstraktion. Behöver din app bakgrundsjobb via Celery, Redis eller WebSockets är delad hosting fel verktyg oavsett.

På cPanel-hostar med Passenger-stöd konfigurerar du appen via Setup Python App i kontrollpanelen. Du anger appens rotkatalog, väljer Python-version och låter cPanel generera en passenger_wsgi.py automatiskt, eller skapar den manuellt. Den filen pekar ut din Flask-applikation som application-objektet, vilket är det namn Passenger söker efter. Aktivera sedan det virtualenv som cPanel skapar och installera dina beroenden via pip över SSH. En sak att ha i åtanke: ändringar i Python-koden plockas inte upp automatiskt eftersom Passenger cachar bytekoden. Du behöver starta om appen manuellt via kontrollpanelen eller en touch-fil.

CGI startar ett nytt Python-process för varje enskild HTTP-request och avslutar den efteråt, utan att bevara tillstånd, databasanslutningar eller sessioner. Det är tekniken från 1990-talet och ger oacceptabelt dålig prestanda för moderna webbappar. WSGI är en standardiserad gränssnittsspecifikation som låter en applikationsserver som Passenger hålla din Python-app igång som en långvarig process och skicka requests till den. Django och Flask bygger båda på WSGI, och utan det stödet fungerar de inte på ett meningsfullt sätt. Ser du "Python-stöd" i en hosts marknadsföring utan att de nämner Passenger eller WSGI är det nästan alltid CGI de menar.

Miljö och konfiguration

Ett virtualenv skapar en isolerad Python-miljö för ditt projekt med egna paketversioner, utan att störa serverns systemmiljö eller andra appar på samma server. Utan virtualenv tvingas pip att installera i den globala systemmiljön, vilket kräver root-rättigheter du inte har på delad hosting, och skapar dessutom versionskonflikter om du eller någon annan app behöver olika versioner av ett bibliotek. Resultatet är vanligtvis ett ImportError vid uppstart. En seriös Python-host låter dig skapa ett virtualenv via cPanels Setup Python App eller direkt via SSH med python3 -m venv.

Django 5.x kräver Python 3.10 eller nyare. Flask är mer flexibelt men följer generellt samma miniminivå för produktionsbruk. På cPanel-hostar med Setup Python App väljer du Python-version i en rullgardinsmeny, och de tillgängliga versionerna beror på vad hosten installerat på servern. Det är vanligt att äldre hostar erbjuder 3.8 eller 3.9 som högsta version, vilket stänger ute Django 5 och nyare bibliotek som kräver 3.10+. Kontrollera alltid vilka versioner som finns tillgängliga i hostens dokumentation eller via SSH-kommandot ls /opt/cpanel/ea-python* på cPanel-servrar, innan du förbinder dig till en plan.

PHP är inbyggt i nästan alla webbservrar och körs utan något extra konfigurationslager. Du laddar upp en fil och den exekveras direkt. Python kräver en applikationsserver (Passenger, Gunicorn eller liknande) som mellanhand, ett virtualenv för pakethantering och SSH-åtkomst för att sätta ihop det. Det innebär att Python-appar har fler rörliga delar och att hostens konfigurationsstöd spelar en avgörande roll. En PHP-app kan fungera på nästan vilket webbhotell som helst. En Django-app kräver att hosten aktivt valt att stödja just det deploymentflödet.

När delad hosting inte räcker

Appar med bakgrundsjobb via Celery, realtidskommunikation via WebSockets, cachning med Redis, maskininlärningsinferens eller hög samtidig trafik överstiger vad delad hosting är byggd för. Delad hosting begränsar hur länge processer får köra, hur mycket minne de får använda och blockerar ofta portar som Redis och WebSocket-servrar behöver. En VPS ger dig fria händer att installera exakt de systembibliotek och tjänster din app behöver, köra Nginx framför Gunicorn och konfigurera systemtjänster som startar om appen vid serverrestart.

PaaS-tjänster som PythonAnywhere, Railway och Render är ett mellanting mellan delad hosting och VPS. De hanterar infrastrukturen åt dig, stödjer Python-ramverk utan WSGI-konfiguration och har gratisnivåer lämpade för enklare projekt och prototyper. Nackdelen är att priset stiger snabbt vid ökad last och att du inte väljer datacenterplats på samma sätt som med en svensk VPS. För GDPR-känsliga applikationer med krav på datahemvist inom EU är en VPS hos en europeisk leverantör eller en PaaS med tydlig EU-region ofta ett säkrare val.