ImportError: cannot import name _remove_dead_weakref
While trying to renew some of the Let’s Encrypt certs, I got the following error:
$ ./letsencrypt-auto renew
Error: couldn't get currently installed version for /opt/eff.org/certbot/venv/bin/letsencrypt:
Traceback (most recent call last):
File "/opt/eff.org/certbot/venv/bin/letsencrypt", line 7, in
from certbot.main import main
File "/opt/eff.org/certbot/venv/local/lib/python2.7/site-packages/certbot/main.py", line 6, in
import logging.handlers
File "/usr/lib/python2.7/logging/__init__.py", line 26, in
import sys, os, time, cStringIO, traceback, warnings, weakref, collections
File "/usr/lib/python2.7/weakref.py", line 14, in
from _weakref import (
ImportError: cannot import name _remove_dead_weakref
The solution was to execute the following command:
$ mv /opt/eff.org /tmp
The /opt/eff.org
directory will be recreated.