„ImportError: Name ‚Sequence‘ kann nicht aus ‚Sammlungen‘ importiert werden“ – Azure Linux-Web-App mit Python und DjangoPython

Python-Programme
Guest
 „ImportError: Name ‚Sequence‘ kann nicht aus ‚Sammlungen‘ importiert werden“ – Azure Linux-Web-App mit Python und Django

Post by Guest »

Ich habe eine Django-App, die ich als Azure-Linux-Web-App bereitstelle. Es läuft seit Monaten einwandfrei, aber jetzt beim Start nach der Bereitstellung über die AzDO CI/CD-Pipeline treten Fehler mit
auf

Code: Select all

from collections import Sequence
in Zeile 10 beim Laden von pathlib.py aus der MS-Version im Docker-Container.
Die offizielle Version von pathlib.py (https://github.com/python/cpython/blob /3.12/Lib/pathlib.py) lautet

Code: Select all

from _collections_abc import Sequence
Siehe Dokumente unter https://docs.python.org/3/library/pathlib.html
Dies ist ein bekanntes Problem und wird durch den Wechsel von der MS-Version auf die neuere offizielle Version behoben Version. Das Problem ist, dass dieses Problem in der MS-Distribution liegt und nicht in meinem Code oder sogar in der Version der Bibliothek, die mit pip installiert wird. Selbst wenn Sie es ändern, überschreibt jede Bereitstellung die richtige Version mit der Version in der MS-Distribution.
Die App funktioniert lokal einwandfrei mit der offiziellen pathlib.py und funktionierte zuvor in Azure einwandfrei . Es sieht nach einem Regressionsfehler bei der verwendeten Bibliothek aus. Ich habe versucht, die Azure-Version von pathlib.py zu bearbeiten, aber sie wird bei jedem [Container]-Neustart oder jeder erneuten Bereitstellung überschrieben.
Wie kann ich die von verwendete Version von pathlib.py ändern? Azure oder eine andere Lösung, bitte?
UPDATE: Ich habe über mein VS Pro-Abonnement einen Supportvorfall bei Microsoft gemeldet und dies ist die Antwort.
[Von] Technischer Berater für das Open-Source-Software-Team von Azure App Service, Indien.
Vielen Dank, dass Sie sich gemeldet und Ihre Erkenntnisse zum Problem „ImportError: Name ‚Sequence‘ kann nicht aus ‚Sammlungen‘ importiert werden“‘ mit uns geteilt haben. Wir haben auch Ihren StackOverflow-Beitrag überprüft und erkennen an, dass es sich hierbei um ein bekanntes Problem handelt, das mehrere Benutzer betrifft.
Wie Sie richtig darauf hingewiesen haben, entsteht dieses Problem aufgrund der eingeschränkten Unterstützung für die Sammlungsbibliothek in die aktuellen Python-gesegneten Image-Versionen, die im Azure App Service verfügbar sind. Wir sind uns der Herausforderungen bewusst, die dies für unsere Benutzer mit sich gebracht hat, und viele haben eine Problemumgehung implementiert, indem sie benutzerdefinierte Container (WebApp for Containers) mit ihrer eigenen Docker-Datei und „requirements.txt“ verwenden, um die Kompatibilität aufrechtzuerhalten.
Derzeit , die neueste auf dem Markt verfügbare Python-Version ist 3.13.1, während Azure App Service bis zu Python 3.12 unterstützt.
Wie Sie vielleicht wissen, bietet Azure nicht die Möglichkeit, eine bestimmte auszuwählen Nebenversion von Python; Es sind nur Hauptversionen wie 3.12, 3.11, 3.10 und 3.9 verfügbar. Benutzer können die in ihrer App Service-Umgebung bereitgestellte Nebenversion zusammen mit der Linux-Distribution bestätigen, indem sie auf das SSH-Terminal zugreifen.
Azure App Service nutzt die Microsoft Container Registry (MCR), um offizielle Dateien abzurufen Python-Bilder, wenn eine Laufzeitversion konfiguriert ist. Bei der Auswahl von Python 3.12 holt sich Azure beispielsweise das entsprechende Bild vom MCR. Um die Kompatibilität sicherzustellen, bevor Sie Ihre Anwendung bereitstellen, können Sie sich die offiziellen Python-Images für Azure App Service ansehen unter:
Microsoft Container Registry Python Images.
Wir möchten Ihnen versichern, dass Microsoft arbeitet aktiv daran, die neuesten Python-Versionen in Azure App Service zu testen und zu integrieren. Allerdings haben wir zum jetzigen Zeitpunkt noch keine voraussichtliche Ankunftszeit, wann diese Updates für unsere Endbenutzer weltweit verfügbar sein werden.
Ihr Feedback ist von unschätzbarem Wert und Ihre Bedenken werden von uns bearbeitet höchste Priorität. Wir sind bestrebt, unseren Kunden den besten Service zu bieten und arbeiten fleißig daran, diese Probleme so schnell wie möglich zu beheben.
Vielen Dank für Ihre Geduld und Ihr Verständnis. Bitte zögern Sie nicht, uns zu kontaktieren, wenn Sie weitere Fragen haben oder Hilfe bei der Implementierung von Problemumgehungen benötigen.
Mit anderen Worten: MS weiß, dass es sich um ein Problem handelt und hat derzeit keine Lösung dafür. Ihr Workaround besteht darin, die App als Docker-Container bereitzustellen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post