Я настраиваю свой веб-сайт для использования 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) ...
Я в основном сосредоточился на ошибке:
ImportError: нет модуля с именем ConfigParser
Но не могу найти решения.
Как исправить эту ошибку?
p.s. Мне было интересно, связано ли это с различными настройками Python по умолчанию, но ived безрезультатно пробовал как 2.7, так и 3.5, используя ln -sf /usr/bin/python2.7 / usr / local / bin / python.
Прежде всего, удаление 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" будет в порядке.