由于环境错误而无法安装软件包:[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'
解决该错误的一种方法是删除字符限制。
删除 PATH 字符限制
要删除字符限制:
- 单击搜索栏,键入“注册表”,然后单击“注册表编辑器”。
- 在左侧边栏中,导航到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem”键。
- 找到
LongPathsEnabledKey
并双击它。 - 将“数值数据”字段中的值设置为 1,然后单击“确定”。
- 关闭注册表编辑器,重新启动计算机并重新运行该
pip install
命令。
或者,您可以以管理员身份运行 PowerShell 并发出命令。
以管理员身份运行 PowerShell:
- 单击搜索栏并键入“PowerShell”。
- 右键单击“Windows PowerShell”。
- 单击“以管理员身份运行”。
5. 将以下脚本粘贴到 PowerShell 中。
Set-ItemProperty -Path "HKLM:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
- 关闭 shell,重新启动计算机并重新运行命令
pip install
。
或者,您可以创建一个空METADATA
文件。
在错误消息的位置创建一个空的METADATA文件
您的错误消息将包含 pip 正在查找的元数据文件的路径:
'C:\\Users\\bobbyhadz\\appdata\\Roaming\\Python\\python310\\site-packages\\pip-22.3.dist-info\\METADATA'
请注意,路径以要查找的METADATA
文件结尾。pip
METADATA
pip 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:
- 单击搜索栏并键入“cmd”。
- 右键单击“命令提示符”。
- 单击“以管理员身份运行”。
- 以管理员身份打开 shell 后,重新运行该
pip install
命令。
pip install <package-name> pip3 install <package-name> python -m pip install <package-name> python3 -m pip install <package-name>
pip install
。如果以管理员身份打开 CMD 没有帮助,请尝试以管理员身份打开 PowerShell 并运行该命令。
以管理员身份运行 PowerShell:
- 单击搜索栏并键入“PowerShell”。
- 右键单击“Windows PowerShell”。
- 单击“以管理员身份运行”。
pip install
。当文件被另一个进程锁定时,Windows 会抛出“环境错误:[Errno 2]没有这样的文件或目录”。
如果错误仍然存在,请更改用户的访问权限。
更改用户的访问权限
该错误通常是由于用户无权修改应安装包的目录而引起的。
要解决该错误,请允许用户完全访问 Python 目录。
要更改用户的访问权限:
- 打开安装 Python 的文件夹,例如
C:\Program Files (x86)\Python310
.
您可以使用以下 2 个命令之一找到 Python 的安装位置。
where python python -c "import os, sys; print(os.path.dirname(sys.executable))"
- 打开安装 Python 的目录后,右键单击“Python”或“Python310”文件夹,然后单击“属性”。
- 转到“安全”选项卡,然后单击“编辑”按钮。
- 允许对您的用户或整个“用户”组进行“完全控制”。
- 点击“应用”。
- 再次运行
pip install <package-name>
命令。
向用户授予“完全访问”权限后,您应该能够
pip install
打包而不会出现任何错误。
如果您有一个活动的虚拟环境,您的 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-packages
为true
是否使用虚拟环境。
将“include-system-site-packages”设置为“true”
如果您使用虚拟环境,另一件事可能会有所帮助是:
- 打开你的
venv
文件夹。 - 单击该
pyvenv.cfg
文件。 - 将
include-system-site-packages
属性设置为true
。 - 保存文件。
- 重新运行该
pip install
命令。
结论
错误“由于环境错误而无法安装软件包:[Errno 2]没有这样的文件或目录”是由于安装路径过长引起的。
要解决该错误,请删除最大路径限制。