certbot настраивает ssl, ошибка "Нет модуля с именем" ConfigParser ""

Я настраиваю свой веб-сайт для использования https через certbot.

Я следую указаниям здесь

Я бегу wget а также chmod без проблем, но при выполнении:

./certbot-auto

Я получаю следующие ошибки:

Setting up gyp (0.1+20150913git1f374df9-1ubuntu1) ...
Traceback (most recent call last):
File "/usr/bin/pycompile", line 35, in
from debpython.version import SUPPORTED, debsorted, vrepr, \
File "/usr/share/python/debpython/version.py", line 24, in
from ConfigParser import SafeConfigParser
ImportError: No module named 'ConfigParser'
dpkg: error processing package gyp (--configure):
subprocess installed post-installation script returned error exit status 1
Setting up python-virtualenv (15.0.1+ds-3) ...
Traceback (most recent call last):
File "/usr/bin/pycompile", line 35, in
from debpython.version import SUPPORTED, debsorted, vrepr, \
File "/usr/share/python/debpython/version.py", line 24, in
from ConfigParser import SafeConfigParser
ImportError: No module named 'ConfigParser'
dpkg: error processing package python-virtualenv (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of node-gyp:
node-gyp depends on gyp (>= 0.1+20150913git1f374df9); however:
Package gyp is not configured yet.

dpkg: error processing package node-gyp (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of npm:
npm depends on node-gyp (>= 0.10.9); however:
Package node-gyp is not configured yet.

dpkg: error processing package npm (--configure):
dependency problems - leaving unconfigured
Setting up trash-cli (0.12.9.14-2) ...

Я в основном сосредоточился на ошибке:

Ошибка импорта: нет модуля с именем "ConfigParser"

Но не могу найти никаких решений.

Как я могу исправить эту ошибку?

PS Мне было интересно, если это как-то связано с различными настройками Python по умолчанию, но я попробовал оба 2.7 и 3.5 безрезультатно, используя ln -sf /usr/bin/python2.7 / usr / local / bin / python.

3 ответа

Решение

Прежде всего, удаление Python 3, как было предложено в предыдущем ответе, является ужасной идеей, хотя у него есть небольшой шанс исправить вашу конкретную проблему, гораздо больше шансов создать гораздо больше, так как любая программа, зависящая от него, потерпит крах.

Во-вторых, ваша проблема связана с модификацией, которая была внесена в вашу систему, которая никогда не должна была быть сделана. python предназначен для ссылки на python2 по умолчанию (см. PEP 394) для обратной совместимости и предоставляется python-minimal в Ubuntu (см. список файлов).

Я бы предложил удалить сломанные пакеты, переустановить python, python-minimal, python3 а также python3-minimal работает что-то вроде:

sudo apt update     # Get an up-to-date list of available packages
sudo apt autoclean  # Remove partial packages
sudo apt clean      # Remove package cache to force redownload
sudo apt install --reinstall python python-minimal python3 python3-minimal

Если какой-либо из сломанных пакетов откажется быть удаленным через apt, ты можешь использовать sudo dpkg --remove -force --force-remove-reinstreq $BROKEN_PACKAGE_NAMES (где вы, конечно, должны заменить переменную на фактические сломанные пакеты). ВНИМАНИЕ, это практически ничего не удалит, поэтому не пытайтесь удалить пакет, который вы считаете критически важным для вашей системы.

После того, как вы исправили вашу систему Python, запустите certbot-auto снова.

ConfigParser - это встроенный модуль, но он был изменен на строчный configparser с python 3. Вы запускаете скрипт python2 с python3.

Избавление от python3 и установка только python2 должны решить вашу проблему. Я лично использую обезвоженный, который также может быть вариантом.

Та же проблема возникла, когда я пытался установить nodejs и npm с помощью команды "sudo apt-get install -f nodejs npm". Просто измените версию Python по умолчанию. "sudo rm -rf /usr/bin/python" "sudo ln -s /usr/bin/python2 /usr/bin/python" будет в порядке.

Другие вопросы по тегам