Python: Verhindern Sie, dass bestimmte Pakete von anderen Paketen importiert werdenPython

Python-Programme
Guest
 Python: Verhindern Sie, dass bestimmte Pakete von anderen Paketen importiert werden

Post by Guest »

Ich habe ein Projekt, das mehrere Pakete enthält, zum Beispiel:

Code: Select all

production/
__init__.py
prod_module_1.py
prod_subpackage/
__init__.py
prod_submodule_1.py
...
computation/
__init__.py
computation_module_1.py
...
development/
...
Jetzt möchte ich verhindern, dass bestimmte Pakete von anderen importiert werden können. Um mit dem obigen Beispiel fortzufahren, möchte ich, dass Entwicklungsmodule in der Lage sind, alle Arten von Paketen zu importieren, aber ich möchte nicht, dass irgendein Modul in der Produktion in der Lage ist, Code aus der Entwicklung zu importieren. Und im Wesentlichen möchte ich, dass die Berechnung „eigenständig“ ist, sodass sie nur Module von sich selbst importieren kann, aber von anderen Modulen importiert werden kann.

In der Python-Dokumentation https://docs.python.org/3/reference/import.html Ich habe den folgenden Auszug gefunden:


Um den Import von gezielt zu verhindern einige Module von einem Hook früh auf dem Metapfad (anstatt Deaktivieren des Standardimportsystems vollständig) reicht es aus, ModuleNotFoundError direkt von find_spec() auszulösen, anstatt None zurückzugeben. Letzteres gibt an, dass die Metapfadsuche fortgesetzt werden soll, während das Auslösen einer Ausnahme sie sofort beendet.


Aber ich bin mir nicht sicher, wie/wo Ich muss diese Methode überschreiben. Ein Einblick darüber, wo in der Codebasis diese Änderungen vorgenommen werden müssen, wäre sehr dankbar.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post