Giriş
2.bölüme bölüme atlamak için tıklayın.
Uygulama Projesi Oluşturma
pyproject.toml
Bir pyproject.toml üç tablodan oluşabilir, [project], [build-system], ve [tool]. Bunların olması zorunlu değildir, ancak genellikle bir pyproject.toml en azından [project] tablosunu içerir. Örneğin basit "uv init" komutu bizim için bunu oluşturdu. init komutunun proje paketlemesi için gereken [build-system] tablosunu da otomatik olarak ekleyen seçenekler sunduğunu göreceğiz. tool]tablosuna gelince, diğer komutlar "uv add --dev" gibi veya test/diğer araçlarınız için yapılandırmalar belirlerken bu tablo üzerinde hareket eder.
- description (açıklama),
- readme (beni oku açıklaması),
- requires-python (gerekli sürüm),
- license (lisans),
- authors/maintainers (geliştiriciler),
- keywords (anahtar sözcüler),
- entry-points, (uygulamanın çalıştıracağı kod),
- dependencies (gerekli bağımlılık paketleri)
- optional-dependencies (örneğin --dev / geliştiriciler için tercihe bağlı paketler)
- dependency-groups (örneğin torch'un cpu veya gpu/cuda sürümü gibi bağımlılık grupları)
[project]
name = "sg-project-template"
version = "0.1.0"
description = "Bu sglbl.com için hazırlanmış bir toml örneğidir."
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"fastapi>=0.115.6",
]
[dependency-groups]
dev = [
"jupyter>=1.1.1",
"pytest>=8.3.3",
]
# filter dependencies warnings and future warnings
[tool.pytest.ini_options]
pythonpath = "."
filterwarnings = ["ignore::DeprecationWarning", "ignore::FutureWarning"]
Python Modül/Paket Terminolojisi
uv Kullanım/Komut Kılavuzu
curl -LsSf https://astral.sh/uv/install.sh | sh
Bir Proje Oluşturma [--app (paketlenmeyecek uygulama) modu için]# dizin adını proje olarak alır
uv init
# veya projenizi adlandırın ve proje dizinini açın
uv init myproject && cd myproject
# Not: Komutlar .git/ dizinini ve pyproject.toml dosyasını başlatır
.venv adıyla bir virtual environment (sanal proje ortamı) oluşturun
# Varsayılan ad: .venv
uv venv
# İsimlendirme ile: önerilmez
uv venv .venv2
# Ekstradan şunu çalıştırmanız gerekir: export UV_PROJECT_ENVIRONMENT=.venv2
# VEYA BELİRLİ BIR PYTHON SÜRÜMÜYLE DE OLUŞTURABİLİRSİNİZ.
# 1. Başka bir python sürümünü yükleyin:
uv python install 3.12.3
# 2. Sürümü proje kök dizinindeki bir dosyaya da sabitleyebilirsiniz.
uv python pin 3.12.3 # Varsayılan: pyproject.toml'yi karşılayan daha en yüksek sürüm
# 3. Bu sürümle .venv oluşturun
uv venv --python 3.12.3
Projeye özgü python'ın bulunduğu sanal ortamı (virtual environment) etkinleştirmesource .venv/bin/activate
Dependency (Bağımlılık) paketi yükleyip toml'a eklemeuv add pandas
# geliştirme bağımlılık grubuna ekleyin.
uv add --dev pytest jupyter
uv add --group dev pytest jupyter
# toml yerine sadece aktif virtual environment'e ekleme
uv pip install numpy
# son sürüme güncelleme
uv pip install numpy --upgrade
# Örnek: Torch'un cpu sürümünü yükleme uv add torch --index https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match
# pyproject.toml adresinden --no-deps ile yükleyin [Çakışan bağımlılıkları yüklemek için] uv pip install -r pyproject.toml --index-strategy unsafe-best-match --no-deps
uv remove loguru
uv remove --dev jupyter
Gereksinimleri pyproject.toml'daki tabloya bakıp yükleyin.Yüklü paketleri listelemeuv sync uv sync --dev
# veya uv pip install -r pyproject.toml
uv pip list
# Bağımlılık ağacı şeklinde görmek için
uv tree
pyproject.toml gereksinimlerini requirements.txt dosyasına kaydetmeuv pip compile pyproject.toml -o requirements.txt
requirements.txt gereksinimlerini pyproject.toml dosyasına kaydetmeuv add -r requirements.txt
# Dosya pypi'dan olmayan ekstra url içeriyorsa
uv add -r requirements.txt --index https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match
Proje ortamında bir python dosyası çalıştırma (pyproject.toml'a göre)uv run main.py
Araçları projenizin içine yüklemeden çalıştırma (uvx)# Örneğin pytest'i çalıştırmak için
uvx pytest
# veya uv tool komutu ile
uv tool run pytest