【问题标题】:Pip list raises ValueError点列表引发 ValueError
【发布时间】:2019-02-03 23:47:06
【问题描述】:

我无法使用 /usr/local/lib/python3.6/dist-packages/pip (python 3.6) 中的 pip 19.0.1 运行 $ pip list

$ pip list
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2584, in version
    return self._version
  File "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2691, in __getattr__
    raise AttributeError(attr)
AttributeError: _version

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/pip/_internal/cli/base_command.py", line 176, in main
    status = self.run(options, args)
  File "/usr/local/lib/python3.6/dist-packages/pip/_internal/commands/list.py", line 148, in run
    self.output_package_listing(packages, options)
  File "/usr/local/lib/python3.6/dist-packages/pip/_internal/commands/list.py", line 205, in output_package_listing
    data, header = format_for_columns(packages, options)
  File "/usr/local/lib/python3.6/dist-packages/pip/_internal/commands/list.py", line 271, in format_for_columns
    row = [proj.project_name, proj.version]
  File "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2589, in version
    raise ValueError(tmpl % self.PKG_INFO, self)
ValueError: ("Missing 'Version:' header and/or METADATA file", Unknown [unknown version] (/usr/local/lib/python3.6/dist-packages))

我正在运行这些命令的新虚拟机,最后的命令安装了我从 github 克隆的东西。

apt-get install -y python3 python3-pip python3-dev
python3 -m pip install --upgrade pip
pip3 install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz#egg=en_core_web_sm-2.0.0
sudo -H pip3 install -e /vagrant

【问题讨论】:

标签: python pip


【解决方案1】:

问题是我的 Python 库中有以连字符开头的文件夹,这些文件夹会导致错误。我不确定将它们重命名为什么,所以我删除了它们。这可能会在将来给我带来问题,但它解决了这个线程的问题。

假设有问题的文件夹名为-bad_folder。这些命令应该可以解决它:

cd /usr/local/lib/python3.6/dist-packages
rm -rf ./-bad_folder

错误文件夹名称前的./ 很重要,因此命令行将其识别为文件,而不是命令的选项。

如果有人有比删除文件夹更好的解决方案,请告诉我。

更新:我拥有的带有前导连字符的文件夹被命名为-pacy;这似乎是 spaCy(一个 Python 包)安装不完整的产物。我给了我的 VM 更多内存并重新安装了它,但 -pacy 文件不存在。

【讨论】:

    【解决方案2】:

    pip 命令通常指的是 Python 版本 2。

    改用pip3

    【讨论】:

    • 无论哪种方式,我都会遇到相同的错误。我认为pippip3 都指向相同版本的Python,因为$ pip --version 返回pip 19.0.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
    猜你喜欢
    • 2022-01-12
    • 2016-09-18
    • 2019-07-31
    • 2018-05-21
    • 2011-05-22
    • 2021-08-23
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多