我正在设置我的网站以通过 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
链接到(请参阅python2
PEP 394python-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
再次运行。
答案2
答案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” 就可以了。