点子找不到元数据文件-EnvironmentError

时间:2019-02-06 11:17:35

标签: python python-3.x pip virtualenv ubuntu-16.04

每当我运行pip在Ubuntu 16.04中安装virtualenv之类的Flask软件包时,都会出现此错误:

pip install virtualenv

Requirement already satisfied: virtualenv in ./.local/lib/python3.5/site-packages (16.1.0) No metadata found in ./.local/lib/python3.5/site-packages Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/usr/.local/lib/python3.5/site-packages/virtualenv-16.1.0.dist-info/METADATA'

这是我的pip和python版本:

pip --version pip 19.0.1 from /usr/.local/lib/python3.5/site-packages/pip (python 3.5)

python3 --version Python 3.6.8

我已经尝试了从互联网上获取的几乎所有内容来解决此问题,例如:

/usr/.local/bin/pip install virtualenv

但是我仍然遇到相同的错误。

我也进入dist文件夹,以使用METADATA复制metadata.json,但是里面没有meta.json文件。

cd /usr/.local/lib/python3.5/site-packages/virtualenv-16.1.0.dist-info/ cp metadata.json METADATA

cp: cannot stat 'metadata.json': No such file or directory

请帮助我,我一直困扰着这个问题好几天了。 谢谢!

6 个答案:

答案 0 :(得分:7)

我遇到同样的问题

ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/root/anaconda3/lib/python3.6/site-packages/tornado-6.0.4.dist-info/METADATA

然后我cd /root/anaconda3/lib/python3.6/site-packages/tornado-6.0.4.dist-info/ && ls

DESCRIPTION.rst  LICENSE.txt  metadata.json

最后,我做了cp metadata.json METADATA 解决了问题。 也许这对您有帮助。

答案 1 :(得分:3)

我最近遇到了同样的问题。

Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '~/.local/lib/python3.7/site-packages/pip-19.0.1.dist-info/METADATA'

在文件夹中

~/.local/lib/python3.7/site-packages/pip-19.0.1.dist-info/

我发现了另一个名为pip-19.0.1.dist-info的文件,最后一个包含pip的所有必需文件。

我刚刚使用

cd ~/.local/lib/python3.7/site-packages/pip-19.0.1.dist-info/
cp -r ./pip-19.0.1.dist-info/* ./
rm -r ./pip-19.0.1.dist-info

很显然,您需要用自己的版本替换python版本,并检查是否有文件

entry_points.txt  INSTALLER  LICENSE.txt  METADATA  RECORD  top_level.txt  WHEEL

在这里。

也许会帮助您,运气。

答案 2 :(得分:1)

我认为您错误的根源是您的pip配置为可与Python3.5一起使用(并在其特定的Python路径中查找元数据),而您的Python版本为3.6.8

我认为,使用内置venv可以简化Python 3中的虚拟环境。另外,您的Python和Flask版本应该重合,但实际情况并非如此。

我建议您采取以下步骤

python3 -m venv /path/to/new/virtual/environment

  • 通过
  • 激活虚拟环境
cd /path/to/new/virtual/environment
source env/bin/activate

您现在拥有一个隔离的,干净的环境,在这里您只有一个Python版本。

  • 运行pip install --upgrade pip将虚拟环境点升级到与您的Python版本兼容的版本。

  • 运行pip install flask,然后从头开始安装整个堆栈,以使库和Python可执行版本对齐。

答案 3 :(得分:0)

我遇到同样的错误

Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/home/vagrant/.local/lib/python3.7/site-packages/pip-18.1.dist-info/RECORD'

/ usr / bin / pip和/home/vagrant/.local/lib/python3.7/之间似乎存在冲突。

我的解决方案是避免该错误。

  • 冻结冻结> requirements.txt
  • 我删除了/home/user/.local/lib/python3.7目录
  • sudo pip install --upgrade pip
  • pip install -r requirements.txt --user
  • 已修复

答案 4 :(得分:0)

我只是使用Python 3.6.5和pip 19.2.3在另一个软件包中遇到了这个问题。我很犹豫在这里使用解决方案(以及类似的SO问题),所以我只是尝试了以下方法,从而解决了问题:

pip install --force-reinstall package_with_metadata_issue

请注意,我的案件是在抱怨black软件包,这是我尝试安装的其他软件包的依赖项(使用简单的pip install other_package)。 Black已经安装并在我的系统上工作了一段时间,因此目前尚不清楚它是如何进入不良状态或pip发生了什么变化从而无法处理软件包的状态。

具体来说,OP可以尝试:

pip install --force-reinstall virtualenv

尽管这里似乎还有许多其他人对pip本身存在问题,所以可能只是将罐子踢了下去,直到pip处于良好状态为止。

答案 5 :(得分:0)

exit 0解决了我的问题。当然,您需要重新安装对您有问题的软件包。使用pip重新安装它对我不起作用。