Ich habe ein Namespace -Paket namens FOO, das mehrere Verteilungspakete enthält: < /p>
foo.bar_one, foo.bar_two und foo.bar_three werden als
Verteilungspakete über eine private GitLab -Repository installiert. Site-Packages, die
im Pythonpath enthalten sind. (Alle Pakete waren ursprünglich Teil dieses Foo -Namespace im Projekt. Sie werden von verschiedenen Teams bereitgestellt und in separaten Repos gespeichert und dann in das Projekt umgebaut, indem der Quellcode unter den Foo -Namespace hinzugefügt wird. Ich versuche, diese Pakete außerhalb der Projekte zu verschieben. Bei jedem Team muss sich jedes Team in den Projekten um die Arbeitspakete handeln, um die Arbeiten zu bearbeiten. der anderen Teampakete). Die Herausforderung, die ich zu überwinden versuche, besteht darin, wie ein Team im Foo-Namespace des Projekts an ihrem eigenen Paket arbeitet, während sie von den in Site-Packages von Pip. Abhängigkeiten zwischen einigen dieser Pakete. (Ich kann sowohl foo.bar_one als auch foo.bar_z importieren), aber unter Linux begegne ich den impassiven Importproblemen: < /p>
Wenn Site-Packages zuerst in Pythonpath erscheint, kann ich in der FOO.Z-Fail. Namespace. /> Fragen: < /strong> < /p>
Gibt es einen grundlegenden Unterschied in der Art und Weise, wie Namespace -Pakete
zwischen Fenstern und Linux behandelt werden, und es verursacht dieses Verhalten. Was wäre ein besserer Ansatz
, um das gleiche Ziel bei der Aufrechterhaltung der Kompatibilität zu erreichen? Das System hat eine Python -Version: 3.12.6 < /li>
< /ul>
Bearbeiten 2:
Ich habe dies in Bezug auf die Namespaces gefunden, was mich dazu bringt, zu glauben, dass das, was ich tun möchte, möglich ist, und tatsächlich an Windows zu funktionieren. Namespace -Pakete Ein Namespace -Paket ist eine Komposit aus verschiedenen Portionen, wobei jeder Teil ein Unterpackung zum
übergeordneten Paket beiträgt. Teile können sich an verschiedenen Stellen auf dem Datei -System
befinden. Teile können auch in ZIP -Dateien, im Netzwerk oder in
überall gefunden werden, wo Python während des Imports sucht. Namespace -Pakete
können direkten Objekten im Dateisystem entsprechen oder nicht. Es können
virtuelle Module sein, die keine konkrete Darstellung haben. Sie verwenden stattdessen einen benutzerdefinierten iterablen Typ, der bei dem nächsten
-Paket automatisch eine neue Suche nach Paketsporteilen importieren
importieren, wenn sich der Pfad ihres übergeordneten Pakets
(oder Sys.Path für ein Paket auf höchstem Niveau) ändert. Tatsächlich kann
mehrere übergeordnete Verzeichnisse während der Importsuche vorliegen, wobei jeder von einem anderen Teil bereitgestellt wird. Daher kann Elternteil/Einer nicht neben übergeordneten/zwei physikalisch lokalisiert sein. In diesem Fall erstellt Python
ein Namespace-Paket für das übergeordnete Parent-Paket
, wenn es oder eines seiner Unterpackungen importiert wird. 5.2.2.
Namespace -Pakete < /p>
< /blockquote>
In meiner Frage ist Foo der Namespace, bar_one und bar_z zwei Portionen, die sich nicht physisch nebeneinander befinden. Lese ich das richtig?
Namespace -Paket -Importierensproblem unter Linux, jedoch nicht in Windows ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Namespace -Paket -Importierensproblem unter Linux, jedoch nicht in Windows
by Anonymous » » in Python - 0 Replies
- 7 Views
-
Last post by Anonymous
-
-
-
Namespace -Paket -Importierensproblem unter Linux, jedoch nicht in Windows
by Anonymous » » in Python - 0 Replies
- 2 Views
-
Last post by Anonymous
-