σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademySkills
Ctrl K
AO
+1,2 Tsd. Lernende
AnmeldenBeitreten ↗
Skills
AO
+1,2 Tsd. Lernende
Anmelden
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Python-Skill›Modul 1 · Python-Grundlagen für Quants›Thema 1.22·~35 Min.Einsteiger

Virtuelle Umgebungen und pip

Position in der SkillModul 1 von 11 · Thema 22 von 33
1.22 Virtuelle Umgebungen und pip
—Lab-Punkte— / 100XP gesamt—Serie—

Ein Projekt, ein Satz Bibliotheken

Projekte brauchen Bibliotheken von Drittanbietern wie numpy oder pandas, und verschiedene Projekte brauchen verschiedene Versionen. Alles in ein gemeinsames Python zu installieren lässt Versionen kollidieren: Ein Upgrade für ein Projekt bricht ein anderes. Eine virtuelle Umgebung ist ein privater Ordner mit einer eigenen Kopie des Python-Interpreters und eigenen installierten Bibliotheken, sodass jedes Projekt genau das hat, was es braucht. pip ist das Werkzeug, das Bibliotheken aus dem Python Package Index (PyPI) lädt und in die aktive Umgebung installiert.

# Create an environment in the project folder (once)
python -m venv .venv

# Activate it (every new terminal)
source .venv/bin/activate        # macOS and Linux
.venv\Scripts\activate           # Windows

# The prompt now shows (.venv); python and pip belong to it
python -c "import sys; print(sys.prefix)"

# Leave it
deactivate

Mit pip installieren

Bei aktiver Umgebung fügt pip install numpy eine Bibliothek hinzu, pip install numpy==1.26.4 legt eine exakte Version fest, pip install -U numpy aktualisiert sie und pip uninstall numpy entfernt sie. pip list zeigt das Installierte. Rufen Sie es im Zweifel als python -m pip auf, was sicherstellt, dass es zum selben Python gehört, das Sie ausführen. Verwenden Sie nie sudo pip und installieren Sie nicht ins System-Python.

# Install, pin and inspect (environment active)
python -m pip install numpy pandas
python -m pip install "scipy>=1.11,<2"
python -m pip list

# Show one library
python -m pip show numpy

requirements.txt und Versionsregeln

Eine Requirements-Datei listet die Bibliotheken auf, die ein Projekt braucht, eine pro Zeile, sodass jeder die Umgebung mit pip install -r requirements.txt neu aufbauen kann; pip freeze > requirements.txt schreibt die exakt installierten Versionen. Jede Zeile besteht aus einem Namen und einem optionalen Versionsbezeichner: ==1.26.4 (genau), >=2.0 (mindestens), <3 (darunter), !=2.1 (alles außer) und ~=1.4.2 (kompatibel: mindestens 1.4.2, aber noch 1.4.x). Zeilen mit # sind Kommentare. Versionen werden teilweise als Zahlen verglichen, 1.10 ist also neuer als 1.9, nicht älter.

# A version is a tuple of numbers, not a string
print("1.10" > "1.9")               # False  (text order is wrong!)

def version_tuple(text):
    return tuple(int(part) for part in text.split("."))

print(version_tuple("1.10") > version_tuple("1.9"))   # True
print(version_tuple("2.0.1"))                         # (2, 0, 1)

# Reading one requirements line
line = "numpy>=1.26  # for arrays"
name_and_spec = line.split("#", 1)[0].strip()
print(name_and_spec)                                  # numpy>=1.26

Gewohnheiten, die Projekte reproduzierbar halten

Legen Sie pro Projekt eine Umgebung an und halten Sie sie als .venv im Projekt, aber committen Sie sie nicht: Sie ist groß und rechnerspezifisch. Committen Sie stattdessen requirements.txt (oder pyproject.toml). Schreiben Sie lockere Regeln (>=) für das, was Sie brauchen, und legen Sie exakte Versionen (==) fest, wenn Sie Ergebnisse reproduzieren müssen. Wenn etwas hakt, können Sie .venv jederzeit löschen und in einer Minute aus der Requirements-Datei neu aufbauen.

# requirements.txt
numpy==1.26.4          # pinned: reproduce results exactly
pandas>=2.0            # at least 2.0
scipy~=1.11.0          # 1.11.x, but not 1.12
# plotting waits until we need it

# Rebuild the environment anywhere
python -m venv .venv
python -m pip install -r requirements.txt

# Record what is installed right now
python -m pip freeze > requirements.txt
Aktivieren Sie zuerst die richtige UmgebungDer häufigste pip-Fehler ist die Installation ins falsche Python: Die Installation gelingt, aber import scheitert beim Ausführen Ihres Codes. Prüfen Sie vor jeder Installation, dass der Prompt (.venv) zeigt und dass python -c "import sys; print(sys.prefix)" in Ihr Projekt zeigt.
  • python -m venv .venv, dann aktivieren: eine Umgebung pro Projekt.
  • python -m pip install name==version, pip install -r requirements.txt, pip freeze.
  • Bezeichner: ==, >=, <, !=, ~=; Versionen als Zahlentupel vergleichen; Requirements committen, nicht .venv.

Als Nächstes: Git-Grundlagen, um jede Änderung an Ihrem Code zu verfolgen und zurückzugehen, wenn etwas kaputtgeht.

Lab: Was bewertet wird

  • Mit parse_requirement eine Requirements-Zeile lesen25 Pkt.
  • Mit parse_requirements eine ganze Requirements-Datei lesen25 Pkt.
  • Mit version_tuple Versionen vergleichbar machen25 Pkt.
  • Mit satisfies eine Version gegen eine Regel prüfen25 Pkt.
Explorer · lab-22-1
▾ lab-22-1
…
bash · im Browser
learner@quantcraft:~/lab-22-1$
Python noch nicht geladenPythonLn 1, Col 1Spaces: 4UTF-8

Dieses Thema zurücksetzen?

Alles in lab-22-1 wird auf die Startdateien zurückgesetzt und das Terminal geleert. Ihre aktuelle Lösung geht verloren – das lässt sich nicht rückgängig machen.

Wird zurückgesetzt
  • main.py → Startcode
  • Terminal-Verlauf und Testausgabe
  • Nicht eingereichte Änderungen
Bleibt erhalten
  • Beste Lab-Punktzahl
  • Ihre XP und Ihre Serie
  • Vorlesungsfortschritt und Notizen

Melde dich an, um deinen Code auszuführen.

Alle Lektionen kannst du kostenlos lesen. Erstelle ein Konto oder melde dich an, um Code auszuführen, Tests zu starten und dieses Lab abzugeben.

  • IDE im Browser mit Bash-Terminal — nichts zu installieren
  • Sofortige Bewertung, XP und dein Platz auf der Skill
Konto erstellenAnmelden
ODER
Weiter mit GitHub