由于 EnvironmentError 无法安装软件包:[Errno 2] 没有这样的文件或目录 \\METADATA

Posted

技术标签:

【中文标题】由于 EnvironmentError 无法安装软件包:[Errno 2] 没有这样的文件或目录 \\\\METADATA【英文标题】:Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory \\METADATA由于 EnvironmentError 无法安装软件包:[Errno 2] 没有这样的文件或目录 \\METADATA 【发布时间】:2019-07-13 16:30:21 【问题描述】:

我对编码比较陌生,所以我(还没有)运行虚拟环境。相反,我只是将带有 pip 的软件包直接下载到我的电脑上,以便在 atom 中运行 python 3.7。

当我前几天尝试使用 pip 安装 scrapy 包时,像这样-m pip install --user scrapy

我收到此错误:Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'c:\\users\\adrian\\appdata\\roaming\\python\\python37\\site-packages\\pip-19.0.1.dist-info\\METADATA'

我在相关错误中看到的大多数其他答案是人们使用 conda 来安装我认为的某种类型的修复程序?当我尝试使用 conda 执行其中一项修复时,我收到了 CondaHTTPError:SSLError(MaxRetryError('HTTPSConnectionPool(host=\'repo.anaconda.com\', port=443): Max retries exceeded with url: /pkgs/free/noarch/repodata.json.bz2 (Caused by SSLError("Can\'t connect to HTTPS URL because the SSL module is not available.

任何方向都将不胜感激:-)

【问题讨论】:

Pip cannot find metadata file - EnvironmentError的可能重复 ***.com/… ***.com/… 我在此处列出的第一个副本中添加了另一种可能适用于某些人的方法:***.com/a/58082184/10682164 【参考方案1】:

我在尝试安装 Jupyter 时遇到了同样的错误,我的用户配置文件下的路径以 \site-packages\pip-19.0.1.dist-info\METADATA 结尾

当我检查该位置时,它不包含 METADATA,但另一个文件夹名为 pip-19.0.1.dist-info 该文件夹中有几个文件,包括 METADATA

我将这些文件移回目录,使其与错误中列出的路径匹配,然后升级 pip(在管理员帐户下)

pip3 install --upgrade pip

哪些有效并更新了点子

然后我可以运行 Jupyter 安装并且没有错误

【讨论】:

【参考方案2】:

TL;DR:

问题:安装路径过长

解决方案1:在路径较短的文件夹中安装所需的python包(在我的情况下为tensorflow)(例如C:/my_py_packages/some_package

解决方案2:将注册表值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem@LongPathsEnabled设置为1as mentioned here。


原答案: 当我尝试安装 tensorflow 库时,我遇到了这种错误。我的错误如下:

由于环境错误而无法安装软件包:[Errno 2] 没有这样的文件或目录:'c:\moj ifajlovi\faks\11master\1semestar\siap-sistemizaistrazivanjeianalizupodataka_(数据挖掘)\projek 在\rad\venvs\siap_venv\Lib\site-packages\tensorflow_estimator\python\estimator\canned\line ar_optimizer\python\utils\pycache\sharded_mutable_dense_hashtable.cpython-37.pyc'

所以,__pycache__ 目录中没有 sharded_mutable_dense_hashtable.cpython-37.pyc 文件。但是,sharded_mutable_dense_hashtable.cpython-37.pyc 文件在utils 目录(即__pycache__ 目录的父目录)中。

这就是为什么我尝试在__pycache__ 目录中手动复制sharded_mutable_dense_hashtable.cpython-37.pyc 文件。当我尝试这样做时,我遇到了一个复制错误,指出路径太长,因此无法将文件放入目录中。

所以,解决方案

在具有较短路径(例如C:/my_py_packages/some_package)的文件夹中安装所需的python包(在我的情况下为tensorflow)或将注册表值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem@LongPathsEnabled设置为1as mentioned here。

【讨论】:

作为另一个选项,您可以通过更改 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled 注册表值来启用对 Windows 10 中长文件名的支持。 从 Microsoft Store 获取 python 后 pip install pytorch 可能会出现同样的错误消息。 +1,因为您的帖子让我找到了根本原因“路径太长”,请参阅reddit.com/r/pytorch/comments/c6cllq/issue_installing_pytorch 我将 regedit 解决方案作为 tl;dr 放在答案的开头。我几乎在这里跳过它,这是正确的答案。 @Elazar - 我添加了一个 TL;DR。 为了在另一个位置安装包,你可以使用 --target 标志,例如: pip3 install --upgrade --target="C:\Users\\ " 如果你得到一个错误: "ERROR: Can not combine '--user' and '--target'" 你可以在末尾添加 "--no-user" 标志【参考方案3】:

所以上述所谓的解决方案对我来说没有多大意义.. 分拣器路径??无论如何,对我有用的是这个。

我的错误:

Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'c:\\users\\MYUSERNAME\\appdata\\roaming\\python\\python37\\site-packages\\pip-19.0.1.dist-info\\METADATA'

于是我去了目录:

c:\\users\\MYUSERNAME\\appdata\\roaming\\python\\python37\\site-packages\\pip-19.0.1.dist-info\\   

确实没有元数据文件。但是有一个名为19.0.1.dist-info 的文件夹,其中包含元数据文件。只需将其移到上述目录之外,然后 BAM!问题已解决。

【讨论】:

【参考方案4】:

您可能不喜欢这个答案,但对我有用的是从旧版本的文件夹中找到文件:“METADATA”并将其复制到较新的文件夹中。 这不是我有信心的解决方案,但 pip 至少完成了安装。

【讨论】:

【参考方案5】:

我在 Windows 10 上安装 Apache Superset 时遇到此错误。问题在于 MAX_PATH 长度。

Windows 上的pip 无法处理那些较长的安装路径 url,因此通常会导致错误。

解决方案: 对我有用的是卸载 python,然后再次重新安装,但这次在重新安装成功后,你必须禁用路径长度限制

【讨论】:

【参考方案6】:

通过编辑注册表去掉260字符路径限制,将LongPathsEnabled改为1,regedit路径在:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

最后:重新启动计算机,或注销!

【讨论】:

因为 Windows。 这样做是否省钱,我必须期待错误吗? 有趣的是我不需要注销或重启【参考方案7】:

刚刚遇到了类似的问题,但版本不同。 和EsCS69说的差不多,我刚找到导演,看到没有MetaData文件。但是我不能只是从另一个文件中取出它。因此,如果您不使用 gpu 版本,我只是删除了该文件夹并运行 pip install --upgrade --force-reinstall tensorflow-gpupip install --upgrade --force-reinstall tensorflow。问题解决了。

【讨论】:

【参考方案8】:

尝试删除 envs/$env_name/Lib/site-packages 中的包

【讨论】:

【参考方案9】:

首先访问系统注册表:

    单击“开始”,然后单击“运行”。 在“打开”框中,粘贴 %systemroot%\syswow64\regedit ,然后单击“确定”。

然后按照Filip Savic 和dayudodo 的说明执行以下操作:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem@LongPathsEnabled 为 1

【讨论】:

谢谢@David,我真的需要找到一种方法才能通过@Filip 选择的答案!!【参考方案10】:

这就是我所做的:

由于这个错误,我无法安装我的 python 包 ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'c:\\users\\banipreet\\anaconda3\\envs\\env-gpu\\lib\\site-packages\\requests-2.24.0.dist-info\\METADATA'

我只是删除了这个文件夹 'c:\\users\\banipreet\\anaconda3\\envs\\env-gpu\\lib\\site-packages\\requests-2.24.0.dist-info 并重试pip install my-package,安装成功。

【讨论】:

LongPathsEnabled 对我不起作用,但确实如此。谢谢 LongPathsEnabled 对我也不起作用。我能够使用 'conda install -c conda-forge ' 安装软件包,但仍有一些软件包需要 pip 来安装它们。你拯救了我的一天,没有任何效果,但这对我有用。非常感谢! 除此解决方案外,没有什么对我有用。我浪费了几个小时试图解决它,不敢相信解决方案如此简单。 Longpathsenabled 不起作用,但这个解决方案确实有效,即使某些包存在依赖冲突。【参考方案11】:

我最终删除了整个目录并重新运行“pip install ...”,这对我有用。

【讨论】:

【参考方案12】:

在我的情况下,将 Long install path 值更改为 1 并没有解决问题。我已经删除了出现错误的本地文件夹并再次安装了该软件包并且它工作了。

以下是我看到的错误: :ERROR: 由于 OSError 无法安装软件包:[Errno 2] 没有这样的文件或目录:'c:\users\user_name\appdata\local\continuum\anaconda3\lib\site-packages\numpy-1.20.1。分配信息\元数据'

我删除了文件夹: "'c:\users\user_name\appdata\local\continuum\anaconda3\lib\site-packages\numpy-1.20.1.dist-info'

【讨论】:

【参考方案13】:

文件路径太长,以管理员身份打开PowerShell提示符并运行:

Set-ItemProperty -Path "HKLM:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1

【讨论】:

以上是关于由于 EnvironmentError 无法安装软件包:[Errno 2] 没有这样的文件或目录 \\METADATA的主要内容,如果未能解决你的问题,请参考以下文章

由于 EnvironmentError 无法安装软件包:[WinError 5] 访问被拒绝:

如何修复“由于 EnvironmentError 无法安装软件包:[WinError 123]”?

由于 EnvironmentError 无法安装软件包:[Errno 30] 只读文件系统:

由于 ec2 服务器中的 EnvironmentError 无法安装软件包

EnvironmentError: HTTPSConnectionPool 同时在 docker 容器上安装 pip

Python sklearn 安装窗口