Python: запретить импорт определенных пакетов другими пакетами.Python

Программы на Python
Ответить
Anonymous
 Python: запретить импорт определенных пакетов другими пакетами.

Сообщение Anonymous »

Например, у меня есть проект, содержащий несколько пакетов:

Код: Выделить всё

production/
__init__.py
prod_module_1.py
prod_subpackage/
__init__.py
prod_submodule_1.py
...
computation/
__init__.py
computation_module_1.py
...
development/
...
Теперь я хочу предотвратить импорт определенных пакетов другими. В приведенном выше примере я хочу, чтобы модули разработки могли импортировать все типы пакетов, но я не хочу, чтобы какой-либо модуль в производстве мог импортировать код из разработки. И по той же самой сути я хочу, чтобы вычисления были «автономными», чтобы они могли импортировать модули только из себя, но их можно было импортировать другими модулями.

В документации Python https://docs.python.org/3/reference/import.html Я нашел следующий отрывок:


Чтобы выборочно запретить импорт некоторые модули из крючка на ранних этапах метапути (а не полностью отключив стандартную систему импорта), достаточно вызвать ModuleNotFoundError непосредственно из find_spec() вместо возврата None. Последнее указывает на то, что поиск метапути должен продолжаться, а возникновение исключения немедленно прекращает его.


Но я не уверен, как и где Мне нужно перезаписать этот метод. Мы будем очень признательны за понимание того, где в базе кода необходимо внести эти изменения.

Подробнее здесь: https://stackoverflow.com/questions/577 ... r-packages
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»