昨日はすべて順調でしたが、今日、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 12.04およびDebian 7.5上の最新バージョン(> = 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
更新cronジョブに--no-self-upgrade
を追加することを忘れないでください。
これは、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へのバインドの問題について、Apacheを再起動することを忘れないでください。IPv4またはIPv6にバインドできませんでした。
Certbot-autoスクリプトに次の2つの変更を加えました。
最初の変更
pip_version = StrictVersion(check_output([python, '-m', 'pip', '--version'])
に
pip_version = StrictVersion(check_output(['pip', '--version'])
2回目の変更
command = [python, '-m', 'pip', 'install', '--no-index', '--no-deps', '-U']
に
command = ['pip', 'install', '--no-index', '--no-deps', '-U']