NVDA-Erweiterungen und Python 3

Das NVDA-Projekt wechselt von Python 2 zu Python 3. Diese Seite zielt darauf ab, Erweiterungen zu dokumentieren, welche mit der Python 3-Version von NVDA kompatibel sind. Außerdem sollen hier mögliche Probleme bei der Verwendung von Erweiterungen mit zukünftigen NVDA-Versionen aufgezeigt werden (vor allem für inkompatible Erweiterungen).

Was bedeutet der Übergang zu Python 3?

Python 2.x wurde im Jahr 2000 veröffentlicht und ist eine der beliebtesten Programmiersprachen. Mit der Unterstützung von Unicode, Web-Technologien und Tausenden von Bibliotheken von Drittanbietern wurde Python zu einer bevorzugten Sprache für viele Projekte, einschließlich NVDA im Jahr 2006.

Ende der 2000er Jahre kündigten die Python-Entwickler Python 3000 an, ein Projekt zur Modernisierung von Python. Änderungen wurden an der Python-Syntax, der Standard-Bibliothek und anderen zugrunde liegenden Frameworks vorgenommen, einschließlich der Druckfunktion, einer umfassenderen Unterstützung für Unicode, Änderungen an der Standard-Bibliothek und an Iterationsmethoden wie xrange to range. Obwohl Python 3.x die Programmiersprache Python modernisiert hat, beschlossen die Python-Entwickler auf Grund des groß angelegten Einsatzes von Python 2, Python 2.7 (die letzte Version von Python 2) bis Januar 2020 zu unterstützen, um den Menschen hinter all den Projekten Zeit zu geben Python 3 zu implementieren.

Im Jahr 2019 begann NV Access mit der Portierungsarbeit zu Python 3, motiviert durch die Popularität von NVDA und die Langlebigkeit des Projekts. Der Hochpunkt dieser Arbeit war erreicht, als das Project "Threshold Builds" im Juli 2019 veröffentlicht wurdee. Diese Threshold-Versionen von NVDA basierten auf Python 3.7. Neben dem Übergang zu Python 3 wurde auch eine Vielzahl von Änderungen eingeführt, wie z. B. das komplett neu gestaltete Sprachausgabenmodul. Diese grundlegenden Änderungen wirken sich signifikant auf Erweiterungen aus.

Was Sie über den Übergang zu Python 3 und Erweiterungen wissen sollten

Der Übergang zu Python 3 wird sich auf viele Erweiterungen, die auf dieser Website gehostet werden, auswirken. Im Einzelnen sind folgende Probleme bekannt:

  • Die Erweiterung wird nicht geladen, da sie von NVDA als "inkompatibel" gekennzeichnet ist.
  • Die Erweiterung wird zwar geladen, aber Fehler wie z. B. Syntaxfehler und nicht gefundene Module werden angezeigt.
  • Die Erweiterung wird auf Grund von Bytecode-Fehlern nicht geladen.
  • Die Erweiterung verhält sich seltsam, wenn man mit Text arbeitet.
  • Erweiterung funktioniert, aber bestimmte Funktionen, die auf der Python-Standard-Bibliothek basieren, funktionieren nicht, wie z. B. der Internetzugang.
  • Einige Erweiterungen für Sprachausgaben und Braillezeilen verhalten sich bei der Textausgabe seltsam.

Wenn Sie auf diese Probleme stoßen, sollten Sie sich direkt an den Autor oder die Autoren der betreffenden Erweiterung wenden (siehe die untenstehende Liste für Kontakt-Informationen). Achten Sie darauf, dass Sie bei der Kontaktaufnahme mit den Autoren genaue Details der Probleme angeben.

Erklärung der Statussymbole für die Kompatibilität der unten aufgeführten Erweiterungen:

  • Kompatibel: ja
  • Nein: inkompatibel (Bearbeitung der Manifest-ini-Datei und andere Tricks funktionieren nicht)
  • NZB: noch zu bestimmen
  • Geplant: Der Autor hat seine Absicht erklärt, die Portierung der Erweiterung durchzuführen
  • In Arbeit: Die Erweiterung wird zurzeit nach Python 3 portiert

Status der Erweiterungen, die mit Python 3 und anderen Änderungen kompatibel sind

Nachfolgend finden Sie eine Liste der auf dieser Website gehosteten Add-ons sowie deren Kompatibilitätsstatus mit der Python 3-Version von NVDA und der gegebenenfalls bekannten Probleme. Die Liste enthält auch Kontakt-Informationen der Authoren der jeweiligen Erweiterungen.

Hinweis: Der Kompatibilitätsstatus einer Erweiterung kann ohne Vorankündigung geändert werden. Auch wenn eine Möglichkeit besteht, Kompatibilitätsprobleme zu umgehen, indem die Manifest.ini-Datei der Erweiterung bearbeitet wird, sind einige der unten aufgeführten Erweiterungen immer noch nicht kompatibel.