Python

PyOxidizer-Entwickler Gregory Szorc im Interview

„Mit PyOxidizer soll die Distribution von Python-Apps über verschiedene Betriebssysteme hinweg ähnlich funktionieren“
Keine Kommentare

Die Distribution stellt Python-Entwickler oft vor eine Herausforderung. Das neue Tool PyOxidizer soll leicht zu bedienen sein, cross-platform ähnlich laufen und die Distribution vereinfachen. Wir haben mit Gregory Szorc über sein Open-Source-Projekt gesprochen.

PyOxidizer ist ein Tool zum Packaging und zur Distribution von Python-Anwendungen, das sich noch in einer frühen Phase befindet. Welche Probleme soll PyOxidizer lösen und wie lief der Entwicklungsprozess ab? Diese und weitere Fragen beantwortete Gregory Szorc zu seinem neuen Open-Source-Tool, das in Rust geschrieben wurde.

Entwickler.de: Du hast PyOxidizer entwickelt, weil es Schwierigkeiten in der Distribution von Python-Anwendungen gibt. Worin liegen die Probleme – und was macht PyOxidizer besser?

PyOxidizer soll über verschiedene Betriebssysteme und Architekturen hinweg ähnlich funktionieren.

Gregory Szorc: Ein großes Problem ist das Fehlen eines einzigen Tools, das über alle Betriebssysteme hinweg gut funktioniert. Das zwingt Anwendungsentwickler dazu, wertvolle Zeit redundant mit dem Lösen desselben Problems zu verbringen, was enorm frustrierend ist. Ein weiterer erheblicher Punkt besteht darin, dass für viele Tools auf der ausführenden Maschine etwas vorinstalliert sein muss, damit die Anwendung funktioniert. Für diese Tools gilt also nicht das Prinzip, dass sie überall „einfach funktionieren“. Es gibt auch Performance-Schwierigkeiten bei einer Reihe von Tools.

PyOxidizer wurde dazu entwickelt, über verschiedene Betriebssysteme und Architekturen hinweg ähnlich zu funktionieren. Mir ist auch die User Experience sehr wichtig und daher soll PyOxidizer mit kaum vorhandenem Aufwand von Anwendungsentwicklern genutzt werden können.

Entwickler: Mit welchen Tools und Programmiersprachen hast du PyOxidizer entwickelt?

Gregory Szorc: PyOxidizer ist in Rust geschrieben. An begrenzten Stellen ist auch Python-Code enthalten und der Rust-Code muss mit Python-C-APIs kommunizieren. Als IDE verwende ich PyCharm wegen der grandiosen Rust-Einbindung.

Entwickler: Bist du im Entwicklungsprozess Schwierigkeiten begegnet? Wenn ja, wie bist du mit ihnen umgegangen?

Gregory Szorc: Ja, einer Menge! Die bei weitem größte Schwierigkeit lag darin, einen Weg zu finden, eine Python-Anwendung aus einer ausführbaren Self-Contained-Datei auf verschiedenen Betriebssystemen zum Laufen zu bringen. Das wurde schon durch andere Programme und in einigen Closed-Source-Settings von anderen Entwicklern erzielt. Soweit ich weiß, ist PyOxidizer jedoch das erste Tool, das das über verschiedene Betriebssysteme im Open-Source-Bereich ermöglicht. Um das Problem zu lösen, habe ich ein paar Optionen ausprobiert, die zunächst nicht funktionierten. Ich widmete mich dann anderen Ansätzen, die vorhandenen Tools ähnelten. Wann immer ich in einer Sackgasse landete, versuchte ich es auf eine andere Weise – bis ich etwas fand, das funktionierte.

Es gibt noch eine Menge geplanter Features zur Vereinfachung der Distribution.

Eine weitere Schwierigkeit lag darin, Rust zu lernen. PyOxidizer ist mein erstes Rust-Projekt und ich lerne Rust während des Entwicklungsprozesses. Das war zu Beginn eine Herausforderung – so wie bei jeder anderen Programmiersprache auch. Die Rust-Dokumentation und die Lernressourcen sind jedoch hervorragend. Wenn man erst einmal ein bestimmtes Niveau in Rust erreicht hat, erkennt man, wie viel fortschrittlicher Rust im Vergleich zu den Programmiersprachen anderer Systeme ist. Ich hoffe, ich werde in den nächsten Jahren noch sehr viel Rust verwenden.

Lesen Sie auch: Python-Tutorial: Eine Einführung in die Programmiersprache

Entwickler: Was ist der aktuelle Projektstatus und wie sehen deine weiteren Pläne aus?

Gregory Szorc: PyOxidizer ist noch sehr jung. Damit lassen sich einige Python-Anwendungen in ein Package zusammenfassen. Für viele Anwendungen ist das aber aufgrund fehlender Features noch nicht möglich. Derzeit deckt PyOxidizer nur den Build-Aspekt des Problems mit Anwendungen ab. Es gibt noch eine Menge geplanter Features zur Vereinfachung der Distribution dieser Anwendungen (wie die automatische Erstellung von Windows Installern). Meine Vision ist, dass Anwendungsentwickler nur eine einzige Konfigurationsdatei neben ihrer Anwendung hinzufügen müssen – und schon können sie durch einen einzigen Befehl eine verteilbare Version ihrer Anwendung erzeugen.

Entwickler: Was sind die Voraussetzungen für PyOxidizer?

Gregory Szorc: Ein Windows-, macOS- oder Linuxrechner mit installiertem Rust.

Entwickler: Vielen Dank für das Interview!

Gregory Szorc trägt häufig zu Open-Source-Projekten bei. Dazu zählen das Versionskontrollsystem Mercurial, Firefox und python-zstandard.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -