By | 27 mayo, 2019

De un tiempo a esta parte he tenido sistemas de certificados Let’s Encrypt que han dejado de renovar el certificado automáticamente, al ejecutar certbot-auto obtengo el siguiente mensaje de error:

/opt/eff.org/certbot/venv/bin/python: No module named pip.__main__; 'pip' is a package and cannot be directly executed
Traceback (most recent call last):
  File "/tmp/tmp.p48KR72ZCs/pipstrap.py", line 177, in <module>
    sys.exit(main())
  File "/tmp/tmp.p48KR72ZCs/pipstrap.py", line 149, in main
    pip_version = StrictVersion(check_output([python, '-m', 'pip', '--version'])
  File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['/opt/eff.org/certbot/venv/bin/python', '-m', 'pip', '--version']' returned non-zero exit status 1

Opcion 1

La solución que he encontrado es actualizar a mano certbot-auto e indicarle que corra sin tratar de actualizarse. Estos serían los comandos:

rm ./certbot-auto*
wget https://raw.githubusercontent.com/certbot/certbot/75499277be6699fd5a9b884837546391950a3ec9/certbot-auto
chmod +x ./certbot-auto
./certbot-auto --no-self-upgrade

La referencia a este procedimiento la he conseguido de este post en foro de la comunidad Let’s Encrypt.

Opcion 2

Es posible parchar certbot-auto directamente con estos cambios

pip_version = StrictVersion(check_output([python, '-m', 'pip', '--version'])

cambiar por:

pip_version = StrictVersion(check_output(['pip', '--version'])

y

command = [python, ‘-m’, ‘pip’, ‘install’, ‘–no-index’, ‘–no-deps’, ‘-U’]

cambiar por:

command = ['pip', 'install', '--no-index', '--no-deps', '-U']

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *