2016-11-23 6 views
2

Я пытаюсь запустить Pylint и я получаю ошибку ниже:Ошибка: pkg_resources.DistributionNotFound: Распределение по 'backports.functools-LRU-кэш' не было найдено, и требуется pylint

pkg_resources.DistributionNotFound: The 'backports.functools-lru-cache' distribution was not found and is required by pylint

I нашел ссылку ниже, но не уверен, что делать с этими файлами или где их разместить. https://pypi.python.org/simple/backports.functools-lru-cache/

Как это исправить?

+0

Какая версия pylint? – Chr

+0

Как вы установили pylint? –

+0

Я использовал команду pip install pylint –

ответ

3

У меня была такая же проблема, и я установил два недостающих зависимостей (неправильная конфигурация на pylint или не обновляется пип ??) Просто сделать:

pip install backports.functools_lru_cache 

тогда, если вы получаете ошибки, как:

raise DistributionNotFound(req) 

pkg_resources.DistributionNotFound: ConfigParser

просто сделать:

pip install configparser 
0

Я имел эту проблему при работе в virtual environment на CentOS 7.

На CentOS, модуль Backports упакован в пакете ня (python-backports.x86_64).

Решение заключалось в создании виртуального канала с использованием опции --system-site-packages.

Сначала проверьте, установлен ли `` питон-backports` пакет:

yum list installed | grep python-backports

Затем создать/воссоздать виртуальную среду:

virtualenv env --system-site-packages

Это позволяет pylint в virtualenv к во время установки см. модуль backports.

Затем установите pylint в виртуальной среде:

env/bin/pip install pylint

0

Из того, что я могу сказать, некоторые версии 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 

Надеюсь, это поможет другим в решении этой проблемы.

+0

Я тоже работаю под OSX, для чего это стоит. – Twirrim