Из того, что я могу сказать, некоторые версии RHEL/CentOS есть какие-то проблемы с пакетом backports.ssl-матч-имя хоста в их ням репозитории, которые могут привести к проблемам, когда другие пакеты backports обновляются из PyPI. В частности, в среде RHEL7.2 я воспроизвел проблему следующим образом:
> yum install python-pip # indirectly installs backports.ssl-match-hostname
> pip2 install pylint # indirectly installs backports.functools_lru_cache
> pip2 install --upgrade backports.ssl-match-hostname # install latest package from pypi, which effectively corrupts backports.functools_lru_cache
> python2 -m pylint --version # fails with missing import backports.functools_lru_cache
Единственный способ избежать этого, что я нашел, чтобы заменить пакет ня установленных с эквивалентным из PyPI. Это можно сделать следующим образом:
> yum install python-pip # installs backports.ssl-match-hostname as a transitive dependency
> pip2 freeze > temp_reqs.txt # take a snapshot of the installed packages and versions
> pip2 uninstall backports.ssl-match-hostname # remove the yum installed package
> pip2 install -r temp_reqs.txt # reinstall the same version of the backports package, but install from PyPI
Теперь установленные пакеты должны работать должным образом. Выполнение следующего тестового примера подтверждает следующее:
> pip2 install pylint
> pip2 install --upgrade backports.ssl-match-hostname # previously caused corruption of backports.functools_lru_cache used by pylint
> python2 -m pylint --version # now works correctly
Надеюсь, это поможет другим в решении этой проблемы.
Какая версия pylint? – Chr
Как вы установили pylint? –
Я использовал команду pip install pylint –