Ошибка импорта в zope.interface.registry в python
Я устанавливаю проект в виртуальной среде. Я получаю ошибку
from zope.interface.registry import Components
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: No module named registry
Версия этого модуля как 4.0.5
>>> import pkg_resources
>>> pkg_resources.get_distribution("zope.interface").version
'4.0.5'
Я попробовал то же самое на моей машине (не виртуальный env),
>>> import pkg_resources
>>> pkg_resources.get_distribution("zope.interface").version
'4.0.1'
>>> from zope.interface.registry import Components
Вот from zope.interface.registry import Components
не дал никакой ошибки. Согласно этому
QUOTE: 3.8.0 (2011-09-22)
New module zope.interface.registry. This is code moved from
zope.component.registry which implements a basic nonperistent component registry
as zope.interface.registry.Components.
, это не должно давать никаких ошибок. Любое предложение, что мне здесь не хватает или как решить эту ошибку?
3 ответа
У меня была похожая ошибка - я пытался создать новый виртуальный env без site-пакетов. Это создает все хорошо. Но моя Ubuntu уже установлена zope.interface
для собственного использования, поэтому он не хотел устанавливать его дополнительно к моему venv.
Это столкновение заставляет мой venv выдавать ошибку в простом тестовом приложении под mod_wsgi:
from zope.interface.registry import Components
ImportError: No module named registry
Поэтому я пытаюсь удалить zope.interface
от базового питона. Но команда unistall не удалила его (я обнаружил в гугле, что это известная проблема).
Тогда я нашел решение: я просто переключился на свой venv и дал команду на "обновление" zope.interface
оттуда:
(env)user@ubuntu:~/env$ sudo pip install --upgrade zope.interface
После этого моя проблема с zope.interface
dissmiss.
Ваша проблема похожа, поэтому моё решение может помочь. В любом случае, этот ответ очень полезен для пользователей настольных компьютеров с Ubuntu.
На всякий случай, если у кого-то все еще возникает та же проблема, попробуйте следующее:
apt remove --purge certbot
apt autoremove
apt clean
apt install certbot -u
Протестировано на Debian 11 (яблочко) и Ubuntu 22.04.
У меня была та же проблема, и обновление всех репозиториев устранило проблему:
pip3 freeze --local | cut -d = -f 1 | xargs -I {} pip3 install --upgrade {}