【Pip】ValueError: ("Missing 'Version:' header and/or METADATA file at path

0x00 前言

有時候,pip install 用的好好的,突然就一屏幕紅字:

ERROR: Error checking for conflicts.
Traceback (most recent call last):
  File "c:\programdata\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2672, in version
    return self._version
  File "c:\programdata\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2806, in __getattr__
    raise AttributeError(attr)
AttributeError: _version

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\programdata\anaconda3\lib\site-packages\pip\_internal\commands\install.py", line 517, in _warn_about_conflicts
    package_set, _dep_info = check_install_conflicts(to_install)
  File "c:\programdata\anaconda3\lib\site-packages\pip\_internal\operations\check.py", line 110, in check_install_conflicts
    package_set, _ = create_package_set_from_installed()
  File "c:\programdata\anaconda3\lib\site-packages\pip\_internal\operations\check.py", line 49, in create_package_set_from_installed
    package_set[name] = PackageDetails(dist.version, dist.requires())
  File "c:\programdata\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2680, in version
    raise ValueError(msg, self)
ValueError: ("Missing 'Version:' header and/or METADATA file at path: c:\\programdata\\anaconda3\\lib\\site-packages\\-ip-19.0.1.dist-info\\METADATA", Unknown [unknown version] (c:\programdata\anaconda3\lib\site-packages))

雖然不影響使用(啊大家可能沒注意到,即便老報錯但你 pip install 的東西是確實正常安裝好了的),
但終歸還是看着心煩,處理一下吧。

0x01 問題分析

這個問題在 pip 的Github項目裏,作爲 Issue #6194 被討論過,
直接說結論的話就是:site-package 目錄下存在開頭爲 -0%~ 的問題文件夾。

這些文件夾可以簡單的理解爲壞了的文件夾,
比起刪除,更加優雅(顯擺)的方法是直接更新他們:

sudo -H pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U

這裏的 pip 要換成各位自己的路徑,例如 /Users/your_name/anaconda3/bin/pip

0x02 解決方案

只需要看最後的ValueError中的path:

ValueError: ("Missing 'Version:' header and/or METADATA file at path: 
c:\\programdata\\anaconda3\\lib\\site-packages\\-ip-19.0.1.dist-info\\METADATA", Unknown [unknown version] 
(c:\programdata\anaconda3\lib\site-packages))

我們看到,路徑是 site-packages 目錄下的 -ip-19.0.1.dist-info
去括號裏的你自己的路徑那個文件夾下面,例如我這裏的是 c:\programdata\anaconda3\lib\site-packages
找到這個 -ip-19.0.1.dist-info 文件夾,刪掉就正常了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章