Der Titel dieses Beitrags bezieht sich auf Glyphs Python-Verpackung ist jetzt gut. Ich denke, man kann mit Sicherheit sagen, dass wir uns in diesen acht Jahren von „Gut“ zu „Großartig“ entwickelt haben. Lesen Sie weiter für meine Argumentation.
Und vergessen Sie nicht den gesamten Lebenszyklus der virtuellen Umgebung. Es ist so verrückt, wie abgestumpft ich als langjähriger Python-Benutzer geworden bin, aber jedes Mal, wenn ich es erklären muss, sehe ich die Gesichter meiner Schüler und denke: „Das ist nicht in Ordnung.“
Sicher gibt es noch andere Probleme, etwa wie man verteilbare Pakete erstellt und veröffentlicht. Aber ich behaupte, dass dies die meisten Python-
Anfänger nicht betrifft. Außerdem werden sie derzeit ebenfalls angegangen. Lesen Sie weiter.
Geben Sie UV einAber das Interessante ist, dass uv jetzt weit über seine anfängliche „schnellere Pip“-Phase hinausgegangen ist und sein Versprechen erfüllt, „ein umfassender Python-Projekt- und Paketmanager zu sein, der schnell, zuverlässig und einfach zu verwenden ist“.
Um auf die Bootstrapping- und Aktivierungsprobleme zurückzukommen, die ich ganz am Anfang erwähnt habe: Wie löst UV sie? Bedenken Sie Folgendes:
$ mkdir uv-playground $ cd uv-playground $ uv init warning: `uv init` is experimental and may change without warning Initialized project `uv-playground` $ uv add click warning: `uv add` is experimental and may change without warning Using Python 3.12.3 interpreter at: /usr/bin/python3 Creating virtualenv at: .venv Resolved 3 packages in 66ms Built uv-playground @ file:///tmp/uv-playground Prepared 2 packages in 430ms Installed 2 packages in 0.62ms click==8.1.7 uv-playground==0.1.0 (from file:///tmp/uv-playground) $ tree . ├── pyproject.toml ├── README.md ├── src │ └── uv_playground │ ├── __init__.py └── uv.lock 3 directories, 4 files $ uv run python -c "from uv_playground import hello; print(hello())" warning: `uv run` is experimental and may change without warning Hello from uv-playground!Auf die Frage „Wie fange ich an, Python auf meinem Computer zu lernen“ können Sie jetzt allgemein antworten: „UV installieren“.
Einige Überlegungen
npm kam ohne jegliches Äquivalent von „Aktivierung“ davon und ich denke, dass ein zukünftiges Python-Ökosystem auch in der Virtualenv-Aktivierung keinen großen Nutzen mehr finden wird.Mir ist auch aufgefallen, dass uv init das Jungtier ausgewählt hat. Ich hatte immer eine leichte Vorliebe für PDM, aber ich denke, dass dies ein Punkt sein könnte, an dem es kein Zurück mehr gibt.
Es hat Leah und ihren Mitwirkenden viel Arbeit gekostet, dieses Entscheidungsdiagramm für den PyOpenSci-Paketierungsleitfaden zu erstellen. Aber die Tatsache, dass es jetzt eine
Grundlinie gibt, die die Leute ändern können, falls sie spezifischere Anforderungen haben (z. B. ein Meson- oder Scikit-Build-fähiges Build-Backend), sorgt wiederum für eine viel bessere Entwicklererfahrung.
Auf CondaIn den darauffolgenden Jahren habe ich oft auf den alten Blog-Beitrag von Jake VanderPlas verwiesen, in dem er die Unterschiede erläuterte, aber inzwischen scheint es eine verlorene Sache zu sein.
Die Interoperabilitätsprobleme zwischen Pip und Conda wurden nie vollständig angegangen, und obwohl ich denke, dass die Pixi-Leute einen fantastischen Job machen, denke ich, dass uv auf lange Sicht gewinnen wird.
Ich erkenne voll und ganz an, dass Conda-Pakete besser nach dem Konzept von Nicht-Python-Code strukturiert sind und dass die aktuelle Welt der „fetten Räder auf PyPI“ eindeutig eine suboptimale Lösung ist. Aber das gesamte Ökosystem hat sich in diese Richtung entwickelt: Die meisten Pakete veröffentlichen jetzt vorkompilierte Räder für eine Vielzahl von Plattformen.
Mit anderen Worten: Conda ist im Jahr 2024 möglicherweise nicht mehr so nützlich wie im Jahr 2014, und es könnte an der Zeit sein, es nicht mehr Anfängern beizubringen und es als fortgeschrittenes Werkzeug zu betrachten.
Abschluss
gewinnen kann.
Was viele Kritiker der Python-Paketierung schon immer wollten, oder? Sie müssen nicht aus vielen verschiedenen Tools wählen. Aber ich denke, dass UV weit darüber hinausgegangen ist und andere Probleme mit der Entwicklererfahrung gelöst hat, wofür ich glücklich und dankbar bin.Ich verwende UV effektiv für alles und schaue nicht zurück. Ich werde dieses Tool weiterhin jedem empfehlen, weiter darüber reden und hoffe, dass es sich weiter verbreitet.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3