13.02.2022 04:21, Vladimir D. Seleznev пишет: > > В egg-info содержится спецификация модуля, включая его описание, > зависимости и другие метаданные. Важной эта информация становится тогда, > когда какой-нибудь модуль или программа на python использует эту > информацию в рантайме , например, через некоторые явные вызовы importlib > (что происходит не всегда, чаще всего модули ограничиваются лишь вызовом > import, с которым не возникает проблем), и кого-то из зависимых пакетов, > в свою очередь, не предоставляет egg-info. В этом случае Python считает, > что такого модуля не установлено, и выдаёт ошибку. Верно. Чаще всего этой программой будет external Python installation tool (например, pip или poetry). https://docs.python.org/3/library/importlib.metadata.html Примеры формата метаданных: egg-info (директория или файл) - формат метаданных от setuptools (используется при `python setup.py install --root`, legacy): https://setuptools.pypa.io/en/latest/deprecated/python_eggs.html dist-info (используется при установке из wheel, modern PEP517) https://www.python.org/dev/peps/pep-0376/ https://www.python.org/dev/peps/pep-0427/#the-dist-info-directory > > Я не разбирался различных системах межмодульных зависимостей самого > питона и их взаимоотношений между собой, но похоже, что если модуль > предоставляет egg-файлы, то Python ожидает, что они будут предоставлены > всеми зависимыми модулями. Я вижу два решения этой проблемы: или > паковать egg-файлы у всех модулей, или не паковать вообще ни у кого. При > этом, я не знаю, какие ещё side-эффекты вылезут в последнем случае. > Отсутствие метаинформации отразится на инсталляторах Python - они перестанут видеть third-party модули из system sitepackages (устанавливаемых apt) - это приведет к попытке установке таких distributions откуда-то (например, pypi.org), что не всегда приемлемо.