2016-11-23 11 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

我找到下面的链接,但不知道如何处理这些文件或将它们放在哪里。 https://pypi.python.org/simple/backports.functools-lru-cache/

我该如何解决这个问题?

+0

哪个版本的pylint是它? – Chr

+0

你是如何安装pylint的? –

+0

我使用了pip install pylint命令 –

回答

3

我有同样的问题,我安装了两个缺少的依存关系(在pylint的错误配置或没有更新PIP?) 只要做到:

pip install backports.functools_lru_cache 

然后如果你得到一个错误

raise DistributionNotFound(req) 

pkg_resources.DistributionNotFound:configparser

只是做:

pip install configparser 
0

我在CentOS 7.

在CentOS一个virtual environment中运行时有这种问题,反向移植模块被打包为yum包(python-backports.x86_64)。

解决方案是使用--system-site-packages选项创建virtualenv。

首先验证``蟒蛇,backports`软件包安装:

yum list installed | grep python-backports

然后创建/重新创建虚拟环境:

virtualenv env --system-site-packages

这让virtualenv中的pylint的到安装时请参阅backports模块。

然后在虚拟环境中安装pylint的:

env/bin/pip install pylint

0

从我可以告诉RHEL/CentOS的某些版本有某种问题与backports.ssl匹配主机名包在他们的百胜当其他后端软件包从PyPI更新时可能导致问题。

> 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将相当于一个更换百胜安装的软件包:具体而言,在RHEL7.2环境如下我转载的问题。这可以按如下方式完成:

> 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