由于环境错误而无法安装软件包:[Errno 2] 没有这样的文件或目录

由于环境错误而无法安装软件包:[Errno 2]没有这样的文件或目录

Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory

错误“由于环境错误而无法安装软件包:[Errno 2]没有这样的文件或目录”是由于安装路径过长引起的。

要解决该错误,请删除最大路径限制。

Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users\\bobbyhadz\\appdata\\Roaming\\Python\\python310\\site-packages\\pip-22.3.dist-info\\METADATA'
Windows 的路径限制为 260 个字符,这通常会导致问题,因为较长的路径无法解析。

解决该错误的一种方法是删除字符限制。

删除 PATH 字符限制

要删除字符限制:

  1. 单击搜索栏,键入“注册表”,然后单击“注册表编辑器”。

windows 搜索注册表编辑器

  1. 在左侧边栏中,导航到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem”键。

启用 Windows 长路径

  1. 找到LongPathsEnabledKey并双击它。
  2. 将“数值数据”字段中的值设置为 1,然后单击“确定”。

windows 将启用长路径设置为 1

  1. 关闭注册表编辑器,重新启动计算机并重新运行该pip install
    命令。

或者,您可以以管理员身份运行 PowerShell 并发出命令。

以管理员身份运行 PowerShell:

  1. 单击搜索栏并键入“PowerShell”。
  2. 右键单击“Windows PowerShell”。
  3. 单击“以管理员身份运行”。

windows 以管理员身份运行 powershell5. 将以下脚本粘贴到 PowerShell 中。

Set-ItemProperty -Path "HKLM:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
  1. 关闭 shell,重新启动计算机并重新运行命令pip install

或者,您可以创建一个空METADATA文件。

在错误消息的位置创建一个空的METADATA文件

您的错误消息将包含 pip 正在查找的元数据文件的路径:

'C:\\Users\\bobbyhadz\\appdata\\Roaming\\Python\\python310\\site-packages\\pip-22.3.dist-info\\METADATA'

请注意,路径以要查找的METADATA文件结尾。pip

导航到错误消息中的目录,创建一个空文件并重新运行命令。 METADATApip install

如果这不起作用,请从错误消息中导航到包含该...dist-info目录的目录,然后将该pip-X.X.X.dist-info
目录移动到另一个文件夹。

...dist-info移动目录后,重新运行该pip install命令。

pip install命令应重新创建目录并安装指定的包。

如果这不起作用,请尝试pip install使用该--user
选项运行命令。

运行pip install带有--user选项的命令

该错误有时是由于没有安装软件包所需的权限而引起的。

要解决该错误,请运行pip install带有该--user选项的命令。

pip install <package-name> --user pip3 install <package-name> --user python -m pip install <package-name> --user python3 -m pip install <package-name> --user

确保将<package-name>占位符替换为包的实际名称,例如pip install numpy --user

--user选项将包安装在用户的主目录中。

该命令基本上安装特定用户范围内的软件包,而不是整个系统。这有助于解决权限问题。

但是,--user如果您有活动的虚拟环境,该选项将不起作用。

另一件经常解决该错误的方法是pip在安装特定软件包之前升级您的版本。

python -m pip install --user --upgrade pip python -m pip install numpy python3 -m pip install --user --upgrade pip python3 -m pip install numpy

如果这没有帮助,请以管理员身份运行 CMD 并安装该软件包。

以管理员身份运行CMD

以管理员身份运行 CMD:

  1. 单击搜索栏并键入“cmd”。
  2. 右键单击“命令提示符”。
  3. 单击“以管理员身份运行”。

windows以管理员身份运行cmd

  1. 以管理员身份打开 shell 后,重新运行该pip install命令。
pip install <package-name> pip3 install <package-name> python -m pip install <package-name> python3 -m pip install <package-name>
如果您使用 PyCharm,请关闭 IDE,右键单击它并以管理员身份打开 PyCharm,然后运行命令pip install

如果以管理员身份打开 CMD 没有帮助,请尝试以管理员身份打开 PowerShell 并运行该命令。

以管理员身份运行 PowerShell:

  1. 单击搜索栏并键入“PowerShell”。
  2. 右键单击“Windows PowerShell”。
  3. 单击“以管理员身份运行”。

windows 以管理员身份运行 powershell

导致错误的另一个常见原因是运行命令时在后台运行其他 Python 脚本pip install

当文件被另一个进程锁定时,Windows 会抛出“环境错误:[Errno 2]没有这样的文件或目录”。

如果错误仍然存​​在,请更改用户的访问权限。

更改用户的访问权限

该错误通常是由于用户无权修改应安装包的目录而引起的。

要解决该错误,请允许用户完全访问 Python 目录。

要更改用户的访问权限:

  1. 打开安装 Python 的文件夹,例如
    C:\Program Files (x86)\Python310.

您可以使用以下 2 个命令之一找到 Python 的安装位置。

where python python -c "import os, sys; print(os.path.dirname(sys.executable))"
  1. 打开安装 Python 的目录后,右键单击“Python”或“Python310”文件夹,然后单击“属性”。

右击属性

  1. 转到“安全”选项卡,然后单击“编辑”按钮。

单击安全选项卡并编辑

  1. 允许对您的用户或整个“用户”组进行“完全控制”。

允许用户完全控制

  1. 点击“应用”。
  2. 再次运行pip install <package-name>命令。

向用户授予“完全访问”权限后,您应该能够
pip install打包而不会出现任何错误。

如果您有一个活动的虚拟环境,您的 Python 位置将被限制在特定的虚拟环境中。

换句话说,您必须为位于项目中的 Python 文件夹的用户编辑权限。

您可以where python在虚拟环境处于活动状态时运行该命令来查找该目录。

如果这未能解决错误,请尝试升级您的pip.

# 👇️ if you have pip already installed pip install --upgrade pip # 👇️ if your pip is aliased as pip3 (Python 3) pip3 install --upgrade pip # 👇️ if you don't have pip in your PATH environment variable python -m pip install --upgrade pip # 👇️ if you don't have pip in your PATH environment variable python3 -m pip install --upgrade pip # 👇️ if you have easy_install easy_install --upgrade pip

如果您收到错误“ModuleNotFoundError:Python 中没有名为 ‘pip’ 的模块”,请查看我的另一篇文章:

如果代码示例中的命令不适合您,请单击“Install pip in Python”链接。

升级 pip 后,
还要升级
setuptools 。

pip install --upgrade setuptools pip3 install --upgrade setuptools python3 -m pip install --upgrade setuptools

如果这没有帮助,请尝试设置include-system-site-packagestrue是否使用虚拟环境。

将“include-system-site-packages”设置为“true”

如果您使用虚拟环境,另一件事可能会有所帮助是:

  1. 打开你的venv文件夹。
  2. 单击该pyvenv.cfg文件。
  3. include-system-site-packages属性设置为true
  4. 保存文件。
  5. 重新运行该pip install命令。

包括系统站点包

结论

错误“由于环境错误而无法安装软件包:[Errno 2]没有这样的文件或目录”是由于安装路径过长引起的。

要解决该错误,请删除最大路径限制。