Meta tags:
description= So funktionieren Python-Pakete: Paket mit __init__.py erstellen, absolute und relative Imports verwenden, eine saubere API definieren und Fallstricke vermeiden.;
Headings (most frequently used words):
ein, paket, pakete, py, imports, python, die, __init__, wie, das, relative, layout, namen, verwenden, modul, pakets, und, import, system, module, vs, der, wesentliche, unterschied, datei, absolute, öffentliche, api, mit, __all__, steuern, verschachtelte, unterpakete, vollständiges, beispiel, geometry, aufbauen, namespace, findet, verteilen, häufige, fallstricke, zusammenfassung, übungen, minimales, auf, paketebene, bereitstellen, wann, tief, sollte, man, gehen, verzeichnis, shapes, conversions, wichtigsten, freilegen, fehlende, genauso, benennen, stdlib, als, skript, ausführen, zirkuläre, zwischen, modulen, desselben, importerror, bei, relativen, außerhalb, eines,
Text of the page (most frequently used words):
python (93), #import (54), ein (41), paket (39), __init__ (32), kopieren (31), from (28), myapp (28), die (25), das (23), #geometry (20), utils (20), und (19), pakete (17), imports (16), verzeichnis (16), greet (16), lernen (15), mit (15), the (15), der (14), ist (14), matplotlib (14), eine (13), mysql (13), relative (12), module (12), oder (12), mongodb (12), package (11), namen (11), datei (10), aus (10), print (10), wie (9), directory (9), von (9), return (9), auf (8), als (8), circle_area (8), shapes (8), def (8), wenn (8), modul (8), math (8), sys (8), sie (8), listen (8), für (7), html (7), namespace (7), __all__ (7), pip (7), einem (7), pakets (7), sind (7), conversions (7), email (7), man (7), degrees_to_radians (7), erstellen (7), strings (7), elemente (7), absolute (6), services (6), path (6), height (6), radius (6), analytics (6), string (6), w3docs (5), alle (5), json (5), tools (5), übungen (5), was (5), file (5), dateien (5), immer (5), importiert (5), config (5), eines (5), sich (5), nicht (5), rectangle_area (5), radians (5), float (5), degrees (5), werden (5), max_retries (5), greetings (5), tutorial (5), tuples (5), methoden (5), formatter (5), color (5), english (4), code (4), generator (4), fallstricke (4), findet (4), api (4), with (4), name (4), parent (4), install (4), dass (4), importerror (4), verwende (4), des (4), importieren (4), aber (4), build (4), alice (4), verwenden (4), radians_to_degrees (4), triangle_area (4), top (4), level (4), entfernen (4), erste (4), schritte (4), regression (4), dictionaries (4), set (4), listenelemente (4), durchlaufen (4), encoder (3), editor (3), quizze (3), php (3), javascript (3), css (3), verschachtelte (3), unterpakete (3), steuern (3), virtuelle (3), inside (3), versions (3), zum (3), installieren (3), ohne (3), nur (3), aktuellen (3), relativer (3), absoluter (3), macht (3), wird (3), beim (3), enthält (3), skript (3), besteht (3), den (3), standard (3), behandelt (3), funktioniert (3), nun (3), unabhängig (3), modus (3), system (3), pyproject (3), toml (3), direkt (3), home (3), verzeichnisse (3), gleichen (3), namens (3), mehrere (3), 180 (3), base (3), width (3), area (3), layout (3), können (3), generate_report (3), reports (3), daily (3), dem (3), farewell (3), wann (3), bezeichnet (3), hello (3), variablen (3), sets (3), hinzufügen (3), zugreifen (3), italiano (2), português (2), español (2), français (2), русский (2), deutsch (2), über (2), beautifier (2), diff (2), password (2), java (2), git (2), bücher (2), snippets (2), seit (2), zusammenfassung (2), häufige (2), verteilen (2), vollständiges (2), beispiel (2), aufbauen (2), öffentliche (2), wesentliche (2), unterschied (2), this (2), page (2), pytest (2), next (2), umgebungen (2), same (2), what (2), makes (2), before (2), überall (2), exportiert (2), relativ (2), ersten (2), raise (2), attempted (2), known (2), außerhalb (2), liegt (2), meistens (2), darin (2), einen (2), modulen (2), ausführen (2), stattdessen (2), dein (2), umgebung (2), während (2), entwicklung (2), requires (2), simple (2), utilities (2), project (2), setuptools (2), src (2), teilen (2), damit (2), projects (2), aktuelle (2), schreibt (2), nach (2), eindeutig (2), führt (2), nützlich (2), convert (2), schritt (2), kleines (2), ebenen (2), zeichen (2), separate (2), sollte (2), zwei (2), tief (2), charts (2), bar (2), teil (2), auch (2), runs (2), funktionieren (2), innerhalb (2), machen (2), einer (2), bibliothek (2), usw (2), navigieren (2), davon (2), message (2), user (2), bob (2), beide (2), verfügbar (2), schreiben (2), paketebene (2), empty (2), definieren (2), kann (2), spanish (2), durch (2), and (2), handling (2), zahlen (2), klassen (2), limit (2), update (2), drop (2), collection (2), delete (2), insert (2), datenbank (2), daten (2), grid (2), einführung (2), schleifen (2), verbinden (2), ändern (2), hash (2), 2026, rechte, vorbehalten, entwickler, gemacht, sprache, datenschutzrichtlinie, kontakt, uns, unternehmen, probier, üben, kostenlose, tutorials, beispiele, web, 2014, previous, yes, helpful, prüfen, __package__, any, setup, übung, siehe, codeorganisation, einzelnen, drittanbieter, paketen, isolierten, verwalten, projektabhängigkeiten, virtual, environments, venv, auffindbar, editierbares, listet, zur, wurzel, ausgeführt, kurzbeschreibung, konzept, führe, strukturiere, einstiegspunkt, separates, run, will, bei, relativen, imported, only, when, function, called, some_function, delayed, breaks, cycle, load, time, zirkulärer, vor, symptome, unerwartet, erscheinen, lösung, gemeinsame, logik, drittes, auszulagern, funktionsrumpf, verlagern, none, zirkuläre, zwischen, desselben, oben, beschrieben, bricht, direkte, vermeide, könnte, anstelle, bibliotheks, moduls, unzusammenhängenden, beschädigen, genauso, benennen, stdlib, vergisst, noch, ignoriert, vollständig, sei, explizit, füge, hinzu, fehlende, virtuellen, vom, lokal, editierbaren, description, version, backends, legacy, backend, wheel, minimale, metadata, my_project, anderen, benötigst, projektstamm, installiere, entwicklungsmodus, manuelle, manipulation, nötig, tipp, paketverzeichnis, muss, dieser, orte, befinden, sofern, eingetragen, installierte, liegen, site, packages, standardbibliotheks, umgebungsvariable, pythonpath, laufenden, skripts, interaktiven, durchsucht, reihe, tägliche, empfiehlt, einzufügen, absicht, allen, versionen, logischen, zusammen, dies, hauptsächlich, große, organisationen, einzelnes, repositories, installationsverzeichnisse, aufteilen, 141592653589793, 274333882308138, selektiven, 5707963267948966, 53981633974483, main, sits, public, wichtigsten, freilegen, triangle, rectangle, must, non, negative, valueerror, circle, given, wir, bauen, realistisches, drei, vier, tiefes, meist, dafür, groß, geworden, aufgeteilt, installiert, meisten, projekte, ausreichend, gehen, caller, bereitstellt, barchart, importiere, verschachteltes, vollständigen, gepunkteten, pfad, pie, weekly, andere, enthalten, jedes, unterverzeichnis, benötigt, eigene, funktion, existiert, weiterhin, beworbenen, öffentlichen, schnittstelle, führenden, unterstrich, per, konvention, ebenfalls, ausgeschlossen, _private, intentionally, not, exported, liste, dokumentiert, öffentlich, betrachtet, right, part, wrong, script, breaking, ausführt, eigenständiges, löst, achtung, deutlich, möchte, stammt, externen, erleichtern, refactoring, mitziehen, umbenennt, diesem, two, dots, sms, one, dot, überübergeordnete, übergeordnete, verwendet, punkte, speicherort, paketbaum, pep, aufgerufen, empfohlene, stil, sending, send_welcome, starts, sieht, beginnt, hängt, nie, importierende, befindet, whatever, defines, gängiges, muster, häufigsten, verwendeten, aufrufer, statt, bereitstellen, that, fine, can, minimales, paketweite, initialisierung, durchführen, logging, konfiguration, checks, untermodulen, seiner, leer, sein, pypi, veröffentlicht, soll, verwandte, unter, gemeinsamen, geschlossenes, hilfsprogramm, situation, schlüsselwort, bietet, hierarchie, jedoch, mindestens, spezielle, einzelne, einzige, importierbare, einheit, einzigen, ordner, potenziell, viele, baum, dieses, kapitel, erklärt, erstellt, steuert, außen, freigeben, korrekt, vermeidet, einsteiger, stolpern, saubere, vermeiden, http, anfragen, tooling, best, practices, threading, asyncio, concurrency, csv, random, itertools, collections, ausnahmen, auslösen, error, library, addieren, umkehren, duplikate, how, enums, abstrakte, kapselung, polymorphismus, dataclasses, static, classmethod, property, magic, methods, advanced, oop, match, anweisung, enumerate, zip, map, comprehensions, kontextmanager, rekursion, closures, generatoren, decorators, args, kwargs, type, hints, intermediate, sort, query, find, join, table, order, where, select, tabelle, einstieg, nearest, neighbors, auc, roc, kurve, cross, validation, bootstrap, aggregation, means, kategoriale, search, logistische, hierarchisches, clustering, konfusionsmatrix, entscheidungsbaum, train, test, skalierung, multiple, polynomiale, lineare, streudiagramm, normalverteilung, datenverteilung, perzentil, standardabweichung, mittelwert, median, machine, learning, kreisdiagramme, histogramme, balken, scatter, subplot, beschriftungen, linie, marker, plotting, pyplot, django, scipy, pandas, numpy, modules, löschen, lesen, dateiverarbeitung, formatierung, benutzereingabe, try, except, regex, datumsangaben, scope, iteratoren, vererbung, objekte, arrays, lambda, funktionen, for, while, else, tupeln, gruppieren, operatoren, booleans, casting, datentypen, kommentare, syntax, variablennamen, aktualisieren, tupel, entpacken, tuple, sortieren, slicen, ausgabevariablen, modifizieren, list, comprehension, zusammenführen, globale, format, escape, dictionary, verketten, werte, zuweisen, aufrufen, anmelden, durchsuchen, formatters, url, reverse, sha256, md5, length, calculator, colors, hsl, hex, mixer, converter, picker, general, kurse, strukturieren,
Text of the page (random words):
n booleans python operatoren python listen python tupeln gruppieren python dictionaries python if else python while schleifen python for schleifen python funktionen python lambda python arrays python klassen objekte python vererbung python iteratoren python scope python module python datumsangaben python math python json python regex python pip python try except python benutzereingabe python string formatierung file handling python dateiverarbeitung python dateien lesen python dateien schreiben erstellen python dateien löschen python modules numpy tutorial pandas tutorial scipy tutorial django tutorial python matplotlib matplotlib einführung matplotlib erste schritte matplotlib pyplot matplotlib plotting matplotlib marker matplotlib linie matplotlib beschriftungen matplotlib grid matplotlib subplot matplotlib scatter matplotlib balken matplotlib histogramme matplotlib kreisdiagramme machine learning erste schritte mittelwert median modus standardabweichung perzentil datenverteilung normalverteilung von daten streudiagramm lineare regression polynomiale regression multiple regression skalierung train test entscheidungsbaum konfusionsmatrix hierarchisches clustering logistische regression grid search kategoriale daten k means bootstrap aggregation cross validation auc roc kurve k nearest neighbors python mysql mysql einstieg mysql datenbank erstellen mysql tabelle erstellen mysql insert mysql select mysql where mysql order by mysql delete mysql drop table mysql update mysql limit mysql join python mongodb mongodb erste schritte mongodb datenbank erstellen mongodb collection erstellen mongodb insert mongodb find mongodb query mongodb sort mongodb delete mongodb drop collection mongodb update mongodb limit intermediate python f strings type hints args kwargs decorators generatoren closures rekursion kontextmanager comprehensions enumerate zip map match anweisung advanced oop magic methods property static classmethod dataclasses polymorphismus kapselung abstrakte klassen enums python how to listen duplikate entfernen string umkehren zwei zahlen addieren error handling and the standard library ausnahmen auslösen collections itertools os sys random csv dateien concurrency in python asyncio threading python tooling and best practices virtuelle umgebungen pakete pytest http anfragen python pakete und das import system so funktionieren python pakete paket mit __init__ py erstellen absolute und relative imports verwenden eine saubere api definieren und fallstricke vermeiden ein paket ist ein verzeichnis mit python modulen das als eine einzige importierbare einheit behandelt wird während ein modul aus einer einzigen py datei besteht ist ein paket ein ordner der potenziell viele module und unterpakete enthält durch den das import system von python wie durch einen baum navigieren kann dieses kapitel erklärt wie man pakete erstellt steuert was sie nach außen freigeben absolute und relative imports korrekt schreibt und die fallstricke vermeidet über die einsteiger stolpern module vs pakete der wesentliche unterschied ein modul ist eine einzelne py datei greetings py module kopieren ein paket ist ein verzeichnis das mindestens eine spezielle datei namens __init__ py enthält greetings package __init__ py english py spanish py kopieren beide werden mit dem gleichen import schlüsselwort importiert aber ein paket bietet eine namespace hierarchie greetings english und greetings spanish sind separate module teilen sich jedoch den greetings namespace wann ein modul wann ein paket verwenden situation verwende ein kleines in sich geschlossenes hilfsprogramm modul eine py datei mehrere verwandte module unter einem gemeinsamen namen paket ein verzeichnis eine bibliothek die auf pypi veröffentlicht werden soll paket mit src layout die datei __init__ py __init__ py ist das was ein verzeichnis zu einem paket macht python führt sie beim ersten import des pakets oder eines seiner module aus sie kann leer sein oder namen aus untermodulen importieren um sie auf paketebene verfügbar zu machen paketweite initialisierung durchführen logging konfiguration versions checks usw __all__ definieren um from package import zu steuern minimales paket layout myapp __init__ py can be empty utils py config py kopieren myapp __init__ py empty that is fine kopieren myapp utils py def greet name return f hello name kopieren import von außerhalb des pakets from myapp utils import greet print greet alice hello alice kopieren namen auf paketebene bereitstellen ein gängiges muster besteht darin die am häufigsten verwendeten namen in __init__ py zu importieren damit aufrufer from myapp import greet schreiben können statt from myapp utils import greet myapp __init__ py from utils import greet from config import max_retries kopieren nun sind beide namen direkt am paket verfügbar import myapp print myapp greet bob hello bob print myapp max_retries whatever config py defines kopieren absolute imports ein absoluter import beginnt immer beim top level paket oder einem verzeichnis in sys path er hängt nie davon ab wo sich die importierende datei befindet project myapp __init__ py utils py services __init__ py email py kopieren in email py sieht ein absoluter import so aus myapp services email py from myapp utils import greet absolute starts from the top level package def send_welcome user message greet user print f sending message kopieren absolute imports sind der standard und der empfohlene stil pep 8 sie sind eindeutig unabhängig davon wie python aufgerufen wird relative imports ein relativer import verwendet punkte um relativ zum speicherort der aktuellen datei im paketbaum zu navigieren bezeichnet das aktuelle paket bezeichnet das übergeordnete paket bezeichnet das überübergeordnete paket usw myapp services email py one dot import from myapp services same directory from import sms two dots import from myapp parent directory from utils import greet kopieren wann relative imports verwenden relative imports sind innerhalb eines pakets nützlich wenn man deutlich machen möchte dass greet aus diesem paket stammt und nicht aus einer externen bibliothek gleichen namens sie erleichtern auch das refactoring da die imports mit dem paket mitziehen wenn man das top level verzeichnis umbenennt achtung relative imports funktionieren nur innerhalb eines pakets wenn man python myapp utils py direkt ausführt behandelt python die datei als eigenständiges skript und nicht als teil eines pakets und ein relativer import löst importerror attempted relative import with no known parent package aus verwende stattdessen python m myapp utils wrong runs utils py as a script breaking relative imports python myapp utils py right runs utils py as part of the myapp package python m myapp utils kopieren die öffentliche api mit __all__ steuern __all__ ist eine liste von namen die from package import exportiert sie dokumentiert auch was das paket als öffentlich betrachtet myapp __init__ py from utils import greet farewell from config import max_retries __all__ greet max_retries farewell is intentionally not exported kopieren nun importiert from myapp import nur greet und max_retries die farewell funktion existiert weiterhin ist aber nicht teil der beworbenen öffentlichen schnittstelle namen mit einem führenden unterstrich _private werden per konvention ebenfalls von import ausgeschlossen verschachtelte pakete unterpakete pakete können andere pakete enthalten jedes unterverzeichnis benötigt eine eigene __init__ py analytics __init__ py reports __init__ py daily py weekly py charts __init__ py bar py pie py kopieren importiere ein tief verschachteltes modul mit dem vollständigen gepunkteten pfad from analytics reports daily import generate_report from analytics charts bar import barchart kopieren oder wenn analytics __init__ py sie bereitstellt analytics __init__ py from reports daily import generate_report kopieren caller from analytics import generate_report kopieren wie tief sollte man gehen ein drei oder vier ebenen tiefes paket ist meist ein zeichen dafür dass es zu groß geworden ist und in separate top level pakete aufgeteilt werden sollte die unabhängig installiert werden können für die meisten projekte sind zwei ebenen package module ausreichend ein vollständiges beispiel ein geometry paket aufbauen wir bauen schritt für schritt ein kleines aber realistisches paket verzeichnis layout geometry __init__ py shapes py conversions py kopieren shapes py geometry shapes py import math def circle_area radius return the area of a circle with the given radius if radius 0 raise valueerror radius must be non negative return math pi radius 2 def rectangle_area width height return the area of a rectangle return width height def triangle_area base height return the area of a triangle return 0 5 base height kopieren conversions py geometry conversions py def degrees_to_radians degrees convert degrees to radians import math return degrees math pi 180 def radians_to_degrees radians convert radians to degrees import math return radians 180 math pi kopieren __init__ py die wichtigsten namen freilegen geometry __init__ py geometry simple 2 d geometry utilities public api circle_area radius float rectangle_area width height float triangle_area base height float degrees_to_radians degrees float radians_to_degrees radians float from shapes import circle_area rectangle_area triangle_area from conversions import degrees_to_radians radians_to_degrees __all__ circle_area rectangle_area triangle_area degrees_to_radians radians_to_degrees kopieren das paket verwenden main py sits next to the geometry directory import geometry print geometry circle_area 5 78 53981633974483 print geometry rectangle_area 4 6 24 print geometry degrees_to_radians 90 1 5707963267948966 kopieren oder mit selektiven imports from geometry import circle_area degrees_to_radians print circle_area 3 28 274333882308138 print degrees_to_radians 180 3 141592653589793 kopieren namespace pakete python 3 3 seit python 3 3 ist ein verzeichnis ohne __init__ py ein namespace paket python führt alle verzeichnisse gleichen namens in sys path zu einem logischen paket zusammen dies ist hauptsächlich für große organisationen nützlich die ein einzelnes paket auf mehrere repositories oder installationsverzeichnisse aufteilen für die tägliche entwicklung empfiehlt es sich immer __init__ py einzufügen das macht die absicht eindeutig und funktioniert mit allen python versionen wie python pakete findet wenn man import geometry schreibt durchsucht python sys path der reihe nach das verzeichnis des laufenden skripts oder das aktuelle verzeichnis im interaktiven modus verzeichnisse in der umgebungsvariable pythonpath die standardbibliotheks verzeichnisse das site packages verzeichnis wo mit pip installierte pakete liegen import sys print sys path kopieren das paketverzeichnis muss sich direkt in einem dieser orte befinden wenn geometry in home alice projects liegt findet python es nicht sofern home alice projects nicht in sys path eingetragen ist tipp verwende eine virtuelle umgebung und installiere dein paket im entwicklungsmodus pip install e damit python es immer findet ohne dass eine manuelle sys path manipulation nötig ist ein paket verteilen um ein paket mit anderen zu teilen oder es mit pip zu installieren benötigst du eine pyproject toml im projektstamm my_project pyproject toml build metadata src geometry __init__ py shapes py conversions py kopieren eine minimale pyproject toml build system requires setuptools 68 wheel build backend setuptools backends legacy build project name geometry version 0 1 0 description simple 2 d geometry utilities requires python 3 9 kopieren lokal im editierbaren modus während der entwicklung installieren pip install e kopieren nun funktioniert import geometry überall in der virtuellen umgebung unabhängig vom aktuellen verzeichnis häufige fallstricke fehlende __init__ py wenn man __init__ py vergisst behandelt python 3 das verzeichnis als namespace paket was meistens noch funktioniert aber python 2 ignoriert es vollständig sei explizit füge immer __init__ py hinzu ein paket genauso benennen wie ein stdlib modul vermeide namen wie math json os email python könnte dein paket anstelle des standard bibliotheks moduls importieren und so unzusammenhängenden code beschädigen ein paket modul als skript ausführen wie oben beschrieben bricht das direkte ausführen von python myapp services email py relative imports verwende stattdessen python m myapp services email zirkuläre imports zwischen modulen desselben pakets wenn shapes py aus conversions py importiert und conversions py aus shapes py importiert liegt ein zirkulärer import vor symptome sind importerror oder namen die unerwartet als none erscheinen die lösung besteht meistens darin die gemeinsame logik in ein drittes modul auszulagern oder den import in einen funktionsrumpf zu verlagern delayed import breaks the cycle at module load time def some_function from shapes import circle_area imported only when the function is called kopieren importerror bei relativen imports außerhalb eines pakets will raise importerror attempted relative import with no known parent package if run as python myapp utils py from import config relative import inside utils py kopieren führe es als python m myapp utils aus oder strukturiere es so um dass der einstiegspunkt ein separates skript ist das das paket importiert zusammenfassung konzept kurzbeschreibung paket ein verzeichnis mit __init__ py das module enthält __init__ py macht ein verzeichnis zu einem paket wird beim ersten import ausgeführt absoluter import from myapp utils import greet immer von der wurzel relativer import from utils import greet relativ zur aktuellen datei __all__ listet namen auf die from package import exportiert namespace paket verzeichnis ohne __init__ py nur python 3 3 editierbares install pip install e paket überall in der venv auffindbar siehe python module für die codeorganisation in einzelnen dateien python pip zum installieren von drittanbieter paketen und python virtual environments zum isolierten verwalten von projektabhängigkeiten übungen übung what makes a directory a python package in python versions before 3 3 what makes a directory a python package in python versions before 3 3 an __init__ py file inside the directory a setup py file in the parent directory any py file with the same name as the directory a __package__ py file inside the directory prüfen was this page helpful yes no previous virtuelle umgebungen next pytest on this page module vs pakete der wesentliche unterschied die datei __init__ py absolute imports relative imports die öffentliche api mit __all__ steuern verschachtelte pakete unterpakete ein vollständiges beispiel ein geometry paket aufbauen namespace pakete python 3 3 wie python pakete findet ein paket verteilen häufige fallstricke zusammenfassung übungen w3docs kostenlose tutorials beispiele übungen snippets und quizze für das web seit 2014 bücher html lernen css lernen javascript lernen git lernen java ler...
|