让我们加密 certbot-auto 失败,因为 Python / pip 问题



昨天一切都很好,但是今天,使用certbot-auto续订证书,我得到了:

Upgrading certbot-auto 0.31.0 to 0.32.0...
Replacing certbot-auto...
Creating virtual environment...
Installing Python packages...    
/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.eUWQ3w7cFV/pipstrap.py", line 177, in <module>
        sys.exit(main())
      File "/tmp/tmp.eUWQ3w7cFV/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

我在Debian 7.9 ...有同样问题的人?

这是Ubuntu上的最新版本(> = 0.32.x)的问题

只是克隆先前的分支(我使用了0.30.x):

git clone --branch 0.30.x https://github.com/letsencrypt/letsencrypt

并在运行letsencrypt时使用选项--no-self-upgrade。就我而言:

./letsencrypt-auto certonly --no-self-upgrade --standalone -d mydomain.com

不要忘记将--no-self-upgrade添加到您的续订Cron工作中。

我在certbot-auto脚本中进行了以下2个更改,它起作用

1st更改

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

to

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

第二个更改

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

to

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

这似乎正在升级您的certbot软件包的过程中发生?

No module named pip.__main__; 'pip' is a package and cannot be directly executed

可能是python在找到实际的PIP模块之前遇到 pip的文件夹的结果。调试此问题有点棘手(您需要找出在此上下文中的Python所包含的路径,然后搜索这些文件夹),但是也许您可以通过删除和重新安装certbot-auto软件包来解决问题。

(您的Debian版本很古老,但是Certbot版本不是,并且它使用Virtualenv的依赖性,所以可能不是那样。)

不要忘记重新启动有关绑定到端口80的问题:无法绑定到IPv4或ipv6。

最新更新