Yazılım öğrenmeye başlayanlara en çok önerilen dil hangisi diye sorsanız, cevap büyük ihtimalle aynı olur: Python. Peki Python nedir, neden bu kadar popüler ve bir uygulamayı yayına almak için Python sunucuya nasıl kurulur? Bu yazıda önce Python'u tanıyıp tablolarla karşılaştırıyoruz, ardından bir Linux sunucuya kurulumunu ve basit bir uygulamayı yayına almayı adım adım anlatıyoruz.
Python Nedir?
Python, 1991 yılında Guido van Rossum tarafından yayınlanan, açık kaynak ve ücretsiz bir programlama dili. En büyük özelliği okunabilirliği: kod neredeyse İngilizce bir metin gibi okunuyor, süslü parantezler yerine girintilerle bloklar belirleniyor. Yorumlanan (interpreted) bir dil olduğu için kodu derlemeden doğrudan çalıştırabiliyorsunuz.
Küçük bir örnek:
def selamla(isim):
return f"Merhaba, {isim}!"
sunucular = ["web-1", "web-2", "db-1"]
for s in sunucular:
print(selamla(s))
Programlamayla hiç uğraşmamış biri bile bu kodun ne yaptığını aşağı yukarı tahmin edebiliyor. Python'un sevilmesinin en büyük sebebi de bu.
Python Neden Bu Kadar Popüler?
- Öğrenmesi kolay: Sade sözdizimi sayesinde yeni başlayanlar hızlıca ilerliyor.
- Dev kütüphane ekosistemi: Hemen her iş için hazır bir paket var; PyPI'da yüz binlerce paket bulunuyor.
- Çok yönlü: Web, veri analizi, yapay zeka, otomasyon... aynı dille çok farklı işler yapılabiliyor.
- Büyük topluluk: Takıldığınız hemen hemen herşeyin cevabı internette bir yerde var.
Python Nerelerde Kullanılır?
| Alan | Popüler araçlar | Örnek |
|---|---|---|
| Web geliştirme | Django, Flask, FastAPI | Web siteleri, REST API'ler, yönetim panelleri |
| Veri analizi | pandas, NumPy, Jupyter | Raporlama, veri temizleme, görselleştirme |
| Yapay zeka ve makine öğrenmesi | PyTorch, scikit-learn, Hugging Face | Model eğitimi, sohbet botları, tahmin modelleri |
| Otomasyon ve script | Standart kütüphane, requests | Dosya işleme, rapor gönderme, zamanlanmış görevler |
| DevOps ve sistem yönetimi | Ansible, boto3, Fabric | Sunucu yapılandırma, bulut otomasyonu |
Python ile Diğer Diller Karşılaştırması
| Python | JavaScript (Node.js) | PHP | Go | |
|---|---|---|---|---|
| Öğrenme kolaylığı | Çok kolay | Kolay | Kolay | Orta |
| Çalışma hızı | Orta | İyi | İyi | Çok iyi |
| Güçlü olduğu alan | Veri, yapay zeka, otomasyon, API | Web, gerçek zamanlı uygulamalar | Web siteleri, CMS (WordPress) | Yüksek performanslı servisler, altyapı araçları |
| Sunucuya kurulum | Kolay (Linux'ta çoğunlukla hazır) | Kolay | Kolay | Tek dosya halinde derlenir, çok kolay |
Python saf hızda en hızlı dil değil, ama ağır hesaplamaların çoğu zaten C ile yazılmış kütüphanelerde (NumPy, PyTorch gibi) yapıldığı için pratikte bu genelde sorun olmuyor.
Python Sunucuya Nasıl Kurulur? (Ubuntu 24.04)
İyi haber: çoğu Linux dağıtımında Python 3 zaten kurulu geliyor; Ubuntu 24.04'te Python 3.12 hazır. Yapmanız gereken, paket yöneticisi pip'i ve sanal ortam desteğini eklemek.
1. Mevcut sürümü kontrol edin ve eksikleri kurun
python3 --version
sudo apt update
sudo apt install -y python3-pip python3-venv
2. Sanal ortam (venv) ile çalışın
Ubuntu'nun yeni sürümlerinde sistem Python'una doğrudan pip install yapmaya çalışırsanız externally-managed-environment hatası alırsınız. Bu bir hata değil, bilinçli bir koruma: sistem araçlarının kullandığı paketleri bozmamanız için. Doğru yol her proje için ayrı bir sanal ortam kullanmak:
mkdir -p ~/uygulama && cd ~/uygulama
python3 -m venv .venv
source .venv/bin/activate # sanal ortamı etkinleştirir
pip install --upgrade pip
pip install fastapi uvicorn
deactivate # işiniz bitince çıkmak için
Sanal ortamın içine kurduğunuz paketler sadece o projeye ait oluyor; farklı projeler farklı sürümleri birbirini bozmadan kullanabiliyor.
3. Farklı bir Python sürümü gerekirse
Projeniz sistemdekinden farklı bir Python sürümü istiyorsa, sistem Python'una dokunmadan istediğiniz sürümü kurmanın en pratik yolu uv. Hem çok hızlı bir paket yöneticisi, hem de Python sürümlerini kendisi indirip yönetiyor:
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc # uv komutunun PATH'e eklenmesi için
uv python install 3.13 # istediğiniz sürümü indirir
uv venv --python 3.13
source .venv/bin/activate
uv pip install fastapi uvicorn
Python Kurulum Yöntemleri Karşılaştırması
| Yöntem | Ne zaman? | Not |
|---|---|---|
| apt (sistem paketi) | Sistemdeki sürüm işinizi görüyorsa | En kolay; paketleri venv içine kurun |
| venv | Her proje için | Python'la birlikte gelir, ek kurulum gerekmez |
| uv | Farklı sürüm gerekiyorsa, hızlı kurulum istiyorsanız | Sürüm + sanal ortam + paket yönetimi tek araçta |
| pyenv | Aynı sunucuda birçok sürümle çalışıyorsanız | Sürümleri kaynak koddan derler, biraz daha uzun sürer |
| Docker | Ortamın her yerde birebir aynı olmasını istiyorsanız | Resmi python imajlarıyla en tutarlı yöntem |
Python Uygulamasını Sunucuda Yayına Almak
Kurulum tamam, şimdi basit bir web API'sini yayına alalım. API'nin ne olduğunu merak ediyorsanız API nedir yazımıza bakabilirsiniz.
1. Uygulamayı yazın
Proje klasöründe main.py adında bir dosya oluşturun:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def anasayfa():
return {"mesaj": "Merhaba VECDC!"}
2. Çalıştırıp test edin
source .venv/bin/activate
uvicorn main:app --host 0.0.0.0 --port 8000
# tarayıcıdan http://SUNUCU_IP:8000 adresini açın
Ekranda JSON bir yanıt görüyorsanız uygulama çalışıyor. Ama terminali kapattığınız an duracak; kalıcı hale getirelim.
3. systemd ile kalıcı servis yapın
/etc/systemd/system/uygulama.service dosyasını oluşturun (kullanıcı adını ve yolu kendinize göre düzenleyin):
[Unit]
Description=Python uygulamam
After=network.target
[Service]
User=deploy
WorkingDirectory=/home/deploy/uygulama
ExecStart=/home/deploy/uygulama/.venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000 --workers 2
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now uygulama
sudo systemctl status uygulama
Artık uygulama sunucu yeniden başlasa bile kendiliğinden açılıyor, çökerse otomatik yeniden başlıyor.
4. Nginx ile dışarıya açın
Uygulamayı doğrudan internete açmak yerine önüne Nginx koymak en doğrusu; SSL, sıkıştırma ve statik dosyalar gibi işleri Nginx üstleniyor. Basit bir yapılandırma:
server {
listen 80;
server_name ornek.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Bu adımdan sonra alan adınıza ücretsiz bir SSL sertifikası (Let's Encrypt) eklemeyi unutmayın.
Sık Karşılaşılan Sorunlar
| Hata / belirti | Sebep | Çözüm |
|---|---|---|
error: externally-managed-environment | Sistem Python'una paket kurulmaya çalışılıyor | Sanal ortam (venv) kullanın |
python: command not found | Ubuntu'da komutun adı python3 | python3 yazın ya da sudo apt install python-is-python3 |
ModuleNotFoundError | Sanal ortam etkin değil ya da paket kurulmamış | source .venv/bin/activate, sonra paketi kurun |
Address already in use | Port başka bir uygulama tarafından kullanılıyor | Farklı bir port seçin ya da diğer süreci durdurun |
| Servis başlamıyor | Yol veya kullanıcı hatalı | journalctl -u uygulama ile loglara bakın |
Python Uygulamaları İçin Hangi Sunucu?
Küçük ve orta ölçekli bir Python web uygulaması, API yada otomasyon scripti için büyük bir sunucuya ihtiyacınız yok. VECDC sanal sunucuları NVMe disk ve adanmış CPU ile aylık $6'dan başlıyor, otomatik kurulumla yaklaşık 5 dakikada hazır oluyor. Docker ile çalışacaksanız Docker kurulu gelen Developer VDS işinizi daha da kolaylaştırır. Python ile yapay zeka modeli çalıştırmayı düşünüyorsanız yapay zeka sanal sunucuda nasıl çalışır yazımız da işinize yarayabilir.
Sık Sorulan Sorular
Python ücretsiz mi?
Evet. Python açık kaynaklı ve tamamen ücretsizdir; ticari projelerde de lisans ücreti ödemeden kullanabilirsiniz. Paketlerin çoğu da ücretsiz ve açık kaynaktır.
Python 2 mi, Python 3 mü öğrenmeliyim?
Kesinlikle Python 3. Python 2'nin desteği Ocak 2020'de sona erdi ve artık güvenlik güncellemesi almıyor. Yeni projelerin tamamı Python 3 ile yazılmalı.
pip nedir?
pip, Python'un paket yöneticisidir. PyPI üzerindeki kütüphaneleri pip install komutuyla indirip kurmanızı sağlar. Sunucularda paketleri bir sanal ortam (venv) içine kurmanız önerilir.
Python web sitesi yapmak için uygun mu?
Evet. Django, Flask ve FastAPI gibi framework'lerle web siteleri, yönetim panelleri ve API'ler geliştirilebilir. Birçok büyük platformun arka tarafında Python kullanılıyor.
Kısacası
Python, öğrenmesi kolay ama web'den yapay zekaya kadar çok geniş bir alanda kullanılan güçlü bir dil. Linux sunucularda çoğunlukla hazır geliyor; sanal ortamla düzgün kurduğunuzda, systemd ve Nginx ile birkaç adımda uygulamanızı yayına alabiliyorsunuz. Kurulumda takıldığınız birşey olursa bize yazın, yardımcı olalım.