Как остановить DeprecationWarning для Python 2.6?

3687
Chloe

Мне приходится ежедневно запускать эту команду в cron для обновления сертификатов.

# /root/certbot-auto renew --quiet /root/.local/share/letsencrypt/lib/python2.6/site-packages/cryptography/__init__.py:26: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of cryptography will drop support for Python 2.6 DeprecationWarning 

Это всегда отправляет мне сообщение об ошибке. Как мне обновить мой питон, чтобы избежать этой ошибки? Я уже побежал, yum updateно все в курсе.

Installed Packages Name : python Arch : x86_64 Version : 2.6.6 

Ссылка: Certbot: https://certbot.eff.org/#centos6-apache

CentOS релиз 6.8 (финал)

1

2 ответа на вопрос

1
GiantTree

CentOS 6.x (все выпуски CentOS 6) поставляется с Python 2.6, который, как вы узнали, устарел и больше не поддерживается.

К счастью, вы можете установить Python 2.7 помимо 2.6:

yum -y install centos-release-SCL yum -y install python27 

Затем вам нужно заменить версию Python, используемую Let's Encrypt, на новый Python 2.7 следующим образом:

git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt sed -i "s|--python python2|--python python2.7|" letsencrypt-auto ./letsencrypt-auto --verbose 

Я сам не узнал об этом, поэтому вся заслуга eva2000 сообщества Let's Encrypt.

Вы, возможно, потребуется заменить letsencrypt-autoс cerbot-autoкак оригинальный ответ с 2015 года.

Источники: https://community.letsencrypt.org/t/redhat-centos-6-x-users-need-python-2-7/2190
https://github.com/h2oai/h2o-2/wiki/install -python-2.7-on-centos-6.3.-follow-this-sequence-only-only-centos-machine-only
https://wiki.centos.org/AdditionalResources/Repositories/SCL

Изменить: Другие источники упоминают необходимость установки centos-release-SCLдля установки Python 2.7

Это привело к ошибке: `Ошибка получения данных хранилища для ius, хранилище не найдено` Chloe 7 лет назад 0
Я нашел немного другое решение. См редактировать GiantTree 7 лет назад 0
Хорошо, я вижу, что «коллекции программного обеспечения» - это способ установить сразу несколько версий, например, `rvm` для Ruby. Почему я не могу просто обновить Python до 2.7 и избавиться от 2.6? Chloe 7 лет назад 0
@ Хлоя Я не знаю, я не использую CentOS, но по какой-то причине в ОС есть скрипты, которые требуют Python 2.6. GiantTree 7 лет назад 0
Это не сработало: `# sed -i" s | --python python2 | --python python2.7 | " certbot-auto` и `# ./certbot-auto renew --quiet` выдают` /root/.local/share/letsencrypt/lib/python2.6/site-packages/cryptography/__init__.py:26: DeprecationWarning: Python 2.6 больше не поддерживается основной командой Python, пожалуйста, обновите ваш Python. В будущей версии криптографии будет отсутствовать поддержка Python 2.6` Chloe 7 лет назад 0
Это не очень хорошая идея, потому что каждый раз, когда certbot обновляется сам (как каждые 2 недели), он перезаписывает скрипт. Chloe 7 лет назад 0
К сожалению, пакет python27 пуст! `yum info python27`; `Размер: 0.0` Chloe 7 лет назад 0
0
Chloe

Я исправил это, установив sclи используя это в crontab

@daily scl enable python27 "/root/certbot-auto renew --quiet" 


[root@server ~]# python --version Python 2.6.6 [root@server ~]# python2 --version Python 2.6.6 [root@server ~]# scl enable python27 "python --version" Python 2.7.13