certbot 设置 ssl,错误“没有名为‘ConfigParser’的模块”

certbot 设置 ssl,错误“没有名为‘ConfigParser’的模块”

我正在设置我的网站以通过 certbot 使用 https。

我正在按照指示这里

我运行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”的模块

但找不到任何解决方案。

我该如何修复这个错误?

ps 我想知道这是否与不同的默认 python 设置有关,但我尝试了 2.7 和 3.5 都无济于事,使用 ln -sf /usr/bin/python2.7 /usr/local/bin/python。

答案1

首先,按照前面的答案所建议删除 Python 3 是一个糟糕的想法,虽然它有一点机会解决你的特定问题,但更有可能产生更多的问题,因为任何依赖它的程序都会崩溃。

其次,您的问题源于对系统所做的修改,而这种修改本不应该发生。默认情况下python链接到(请参阅python2PEP 394python-minimal) 以实现向后兼容,由Ubuntu提供(请参阅文件列表)。

我建议删除损坏的软件包,重新安装python,,python-minimal并运行以下命令python3python3-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再次运行。

答案2

配置解析器是一个构建模块,但它被改为小写配置解析器使用 python 3。您正在使用 python3 运行 python2 脚本。

删除 python3 并仅安装 python2 应该可以解决您的问题。我个人使用 dehydrated,这也可能是一个选择。

答案3

同样的问题,我在用“sudo apt-get install -f nodejs npm”安装nodejs和npm的时候也遇到了,只要修改默认的python版本就可以了,“sudo rm -rf /usr/bin/python” “sudo ln -s /usr/bin/python2 /usr/bin/python” 就可以了。

相关内容