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