Sie sind hier
E-Book

Hitchhiker's Guide für Python

Best Practices für Programmierer

AutorKenneth Reitz, Tanya Schlusser
VerlagO'Reilly Verlag
Erscheinungsjahr2017
ReiheAnimals 
Seitenanzahl336 Seiten
ISBN9783960103288
FormatePUB
KopierschutzWasserzeichen
GerätePC/MAC/eReader/Tablet
Preis29,90 EUR
Sind Sie bereit, ein echter Pythonista zu werden? Dann wird dieses Buch Ihr treuer Begleiter. Es bietet geballtes Insider-Know-how zu Best Practices und den bevorzugten Werkzeugen der Python-Community. Sie werden Ihre Python-Kenntnisse entscheidend verbessern - ob Sie einfach nur neugierig sind, als Normalsterblicher zu Open-Source-Projekten beitragen oder ein Unternehmen rund um Python aufbauen möchten. Dieses Buch wurde im Rahmen eines Gemeinschaftsprojekts von über einhundert Mitgliedern der Python-Community geschrieben. In Teil 1 geht es um das Einrichten der Python-Umgebung (Interpreter, Python-Installation, Texteditor, IDE). Dann tauchen Sie in Beispiel-Code ein, der den Python-Stil mustergültig umsetzt. Teil 3 macht Sie mit Bibliotheken vertraut, die von der Python-Community bevorzugt genutzt werden. - Entwickeln Sie besseren Python-Code, indem Sie Stil, Konventionen, Idiome und Fallstricke kennenlernen. - Sehen Sie sich exzellente Open-Source-Codebeispiele ausgewählter Python-Bibliotheken an. - Studieren Sie Best Practices für die Paketierung und Distribution von Python-Code. - Erkunden Sie Pythons Bibliotheken für die Benutzer-Interaktion - von Konsolenanwendungen über GUIs bis hin zu Webapplikationen. - Lernen Sie Tools für die Systemadministration sowie das Interfacing mit C- und C++-Bibliotheken kennen und verbessern Sie die Geschwindigkeit von Python. - Arbeiten Sie mit Netzwerk-Bibliotheken für asynchrone Aktionen, Serialisierung und Kryptografie. - Lernen Sie Bibliotheken zur Datenpersistenz und -manipulation kennen, darunter auch Werkzeuge zur Bild- und Audioverarbeitung. Prägnant und meinungsstark nimmt Sie der Hitchhiker's Guide mit auf eine Pro-Tour durch das Python-Universum. Raymond Hettinger, Python Core Developer

Kenneth Reitz ist Product Owner von Python bei Heroku und Fellow der Python Software Foundation. Er ist für seine vielen Open-Source-Projekte bekannt, insbesondere 'Requests: HTTP for Humans'. Tanya Schlusser arbeitet als unabhängige Beraterin. Sie wertet Daten aus, um ihre Kunden bei strategischen Entscheidungen zu unterstützen. Sie hat über 1 000 Stunden Data-Science-Training für Einzelpersonen und Unternehmen abgehalten. Tanya pflegt ihre Mutter, die an Alzheimer leidet.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

KAPITEL 1


Einen Interpreter wählen


Stand der Dinge: Python 2 versus Python 3


Bei der Wahl eines Python-Interpreters geistert immer die eine Frage durch den Raum: »Soll ich Python 2 oder Python 3 nehmen«? Die Antwort liegt nicht so auf der Hand, wie man glauben mag (auch wenn Python 3 jeden Tag verlockender wird).

Hier der Stand der Dinge:

  • Python 2.7 war lange Zeit der Standard.
  • Bei Python 3 wurden größere Änderungen an der Sprache vorgenommen, über die einige Entwickler sehr unglücklich sind.1
  • Python 2.7 erhält notwendige Sicherheits-Updates bis 2020 (https://www.python.org/dev/peps/pep-0373/).
  • Python 3 entwickelt sich kontinuierlich weiter, genau wie in der Vergangenheit Python 2.

Wie Sie sehen, ist die Entscheidung nicht ganz so einfach.

Empfehlungen


So wie wir es sehen, würde ein wirklich abgefahrener Typ2 Python 3 nutzen. Doch auch wenn Sie lediglich Python 2 einsetzen können, nutzen Sie immerhin noch Python. Hier unsere Empfehlungen:

Verwenden Sie Python 3, wenn …

  • Sie Python 3 lieben.
  • Sie nicht wissen, welche Version Sie nutzen sollen.
  • Sie den Wandel lieben.

Verwenden Sie Python 2, wenn …

  • Sie Python 2 lieben und traurig sind, weil Python 3 die Zukunft ist.
  • die Stabilitätsanforderungen Ihrer Software betroffen wären.3
  • die von Ihnen genutzte Software es verlangt.

Also … Python 3?


Sind Sie bei der Wahl des Python-Interpreters offen, sollten Sie die neueste Python 3.x-Version einsetzen – jede neue Version bringt neue und verbesserte Module der Standardbibliothek, eine verbesserte Sicherheit und Fehlerkorrekturen. Fortschritt ist Fortschritt. Nutzen Sie Python 2 also nur aus guten Gründen, z.B. wenn Sie eine Python 2-Bibliothek benötigen, für die es bei Python 3 keine Alternative gibt, oder wenn Sie eine bestimmte Implementierung verwenden müssen (siehe »Implementierungen« auf Seite 5) oder wenn Sie (wie einige von uns) von Python 2 begeistert sind.

Schauen Sie sich Can I Use Python 3? (https://caniusepython3.com/) an, wenn Sie wissen wollen, ob die Python-Projekte, von denen Sie abhängig sind, die Nutzung von Python 3 verhindern.

Als weiterführende Lektüre sei Python2orPython3 (http://bit.ly/python2-or-python3) empfohlen. Es erklärt die Gründe für die Rückwärts-Inkompatibilität der Sprachspezifikation und verweist auf detaillierte Spezifikationen der Unterschiede.

Als Einsteiger haben Sie weit wichtigere Dinge zu tun, als sich um die Kompatibilität zwischen all den Python-Versionen Gedanken zu machen. Bringen Sie Ihr vorhandenes System erst mal ans Laufen und kümmern Sie sich später um diese Baustelle.

Implementierungen


Wenn die Leute von Python sprechen, ist häufig nicht nur die Sprache, sondern auch die CPython-Implementierung gemeint. Tatsächlich ist Python eine Sprachspezifikation, die auf unterschiedliche Weise implementiert werden kann.

Die verschiedenen Implementierungen können der Kompatibilität mit anderen Bibliotheken dienen oder vielleicht einer höheren Geschwindigkeit. Reine Python-Bibliotheken sollten unabhängig von der Python-Implementierung laufen, die auf C basierenden (wie NumPy) allerdings nicht. Dieser Abschnitt bietet einen kurzen Überblick über beliebte Implementierungen.

Dieses Handbuch geht davon aus, dass Sie die Standard-CPython-Implementierung von Python 3 nutzen, auch wenn wir häufig für Python 2 relevante Hinweise einstreuen.

CPython

CPython (http://www.python.org/) ist die in C geschriebene Referenzimplementierung4 von Python. Sie kompiliert Python-Code in Bytecode, der dann von einer virtuellen Maschine interpretiert wird. CPython bietet den höchsten Grad an Kompatibilität für Python-Pakete und in C geschriebene Erweiterungsmodule.5

Wenn Sie Open-Source-Code in Python entwickeln und das größtmögliche Publikum erreichen wollen, sollten Sie CPython nutzen. Möchten Sie Pakete nutzen, die von C-Erweiterungen abhängig sind, ist CPython Ihre einzige Option.

Alle Versionen der Sprache Python sind in C implementiert, da CPython die Referenzimplementierung ist.

Stackless

Stackless Python (https://bitbucket.org/stackless-dev/stackless/wiki/Home) ist ein »normales« CPython (d.h., es sollte mit allen Bibliotheken funktionieren, die CPython nutzen kann), entkoppelt aber über einen Patch den Python-Interpreter vom Aufrufstack. Dadurch wird es möglich, die Ausführungsreihenfolge des Codes zu ändern. Stackless führt das Konzept sogenannter Tasklets ein, die Funktionen in »Micro-Threads« umwandeln. Diese können dann serialisiert auf die Festplatte gespeichert und später über einen Scheduler (standardmäßig ein Round-Robin-Scheduler) ausgeführt werden.

Die greenlet-Bibliothek (http://greenlet.readthedocs.org) implementiert den gleichen Stack-Switching-Mechanismus für CPython-Nutzer. Ein Großteil dieser Funktionalität wurde auch in PyPy implementiert.

PyPy

PyPy (http://pypy.org/) ist ein Python-Interpreter, der eine statisch typisierte Teilmenge von Python namens RPython implementiert, was bestimmte Arten der Optimierung ermöglicht. Der Interpreter bietet einen Just-in-Time-Compiler und unterstützt mehrere Backends wie C, Common Intermediate Language (CIL) (http://bit.ly/standard-ecma-335) und die Java Virtual Machine (JVM).

PyPy strebt die größtmögliche Kompatibilität mit der Referenzimplementierung an, während es gleichzeitig die Performance erhöht. Wenn Sie die Performance Ihres Python-Codes verbessern wollen, sollten Sie PyPy eine Chance geben. Bei einer Benchmark-Suite läuft es momentan etwa fünfmal schneller als CPython (http://speed.pypy.org/).

Es unterstützt Python 2.7. Für Python 3 steht PyPy3 (http://pypy.org/compat.html) bereit. Beide Versionen sind über die PyPy-Download-Seite (http://pypy.org/download.html) verfügbar.

Jython

Jython (http://www.jython.org/) ist eine Implementierung des Python-Interpreters, die den Python-Code in Java-Bytecode kompiliert, der dann durch die JVM ausgeführt werden kann. Darüber hinaus kann Jython jede Java-Klasse wie ein Python-Modul importieren und nutzen.

Wenn Sie eine Schnittstelle zur existierenden Java-Codebasis brauchen oder aus anderen Gründen Python-Code für die JVM schreiben müssen, ist Jython die beste Wahl.

Jython unterstützt momentan Python 2.7 (http://bit.ly/jython-supports-27).

IronPython

IronPython (http://ironpython.net/) ist eine Python-Implementierung für das .NET Framework. Es kann Bibliotheken sowohl von Python als auch von .NET Framework nutzen und gleichzeitig Python-Code für andere Sprachen des .NET Framework bereitstellen.

Python Tools for Visual Studio (http://ironpython.net/tools/) integriert IronPython direkt in die Entwicklungsumgebung und macht es so zur idealen Wahl für Windows-Entwickler.

IronPython unterstützt Python 2.7 (http://ironpython.codeplex.com/releases/view/81726).

PythonNet

Python for .NET (http://pythonnet.github.io/) ist ein Paket, das eine nahezu nahtlose Integration eines nativ installierten Python-Systems mit der .NET Common Language Runtime (CLR) erlaubt. Das ist das genaue Gegenteil des von IronPython verfolgten Ansatzes, das heißt, PythonNet und IronPython ergänzen sich eher, als dass sie miteinander konkurrieren.

Im Zusammenspiel mit Mono (http://www.mono-project.com/) ermöglicht Python-Net auf Nicht-Windows-Systemen wie OS X und Linux die Arbeit innerhalb des .NET Framework. Es kann ohne Probleme zusammen mit IronPython betrieben werden.

PythonNet unterstützt Python 2.3 bis Python 2.7. Die Installationsanweisungen finden Sie auf der PythonNet-Readme-Seite (http://pythonnet.github.io/readme.html).

Skulpt

Skulpt (http://www.skulpt.org/) ist eine JavaScript-Implementierung von Python. Sie portiert nicht die gesamte Standardbibliothek von CPython. Die Bibliothek umfasst die Module math, random, turtle, image und unittest sowie Teile von time, urllib, DOM und re. Es ist für Lehrzwecke gedacht und bietet auch die Möglichkeit, eigene Module einzubinden (http://bit.ly/skulpt-adding-module).

Beachtenswerte Beispiele für seine Nutzung sind Interactive Python (http://interactivepython.org/) und...

Blick ins Buch

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Atalanta

Atalanta

Atalanta ist die Zeitschrift der Deutschen Forschungszentrale für Schmetterlingswanderung. Im Atalanta-Magazin werden Themen behandelt wie Wanderfalterforschung, Systematik, Taxonomie und Ökologie. ...

cards Karten cartes

cards Karten cartes

Die führende Zeitschrift für Zahlungsverkehr und Payments – international und branchenübergreifend, erscheint seit 1990 monatlich (viermal als Fachmagazin, achtmal als ...

e-commerce magazin

e-commerce magazin

e-commerce magazin Die Redaktion des e-commerce magazin versteht sich als Mittler zwischen Anbietern und Markt und berichtet unabhängig, kompetent und kritisch über ...