Skip to content

解决 `pip install` 的 OSError: [Errno 13] Permission denied 问题

Posted on:2024年6月25日 at 22:15

在使用 pip install 安装 Python 包时,遇到 OSError: [Errno 13] Permission denied 错误是一个常见问题,特别是在尝试将包安装到需要管理员权限的目录时。以下是一些解决此问题的方法。

1. 使用 --user 选项

如果您不需要将包安装到全局 Python 环境,可以使用 --user 选项将包安装到用户的本地目录中。这种方法不需要管理员权限。

pip install --user <package-name>

如果您正在从 requirements.txt 文件中安装包,可以使用以下命令:

pip install --user -r requirements.txt

2. 使用虚拟环境

虚拟环境允许您在项目中创建一个独立的 Python 环境,其中的包安装不会影响全局 Python 环境。建议在项目中使用虚拟环境来避免权限问题。

创建并激活虚拟环境:

python -m venv env
source env/bin/activate  # 在 Windows 上使用 `env\Scripts\activate`

在虚拟环境中安装包:

pip install <package-name>

3. 修改目录权限

如果您确实需要将包安装到全局环境,可以修改 Python 安装目录的权限。请注意,这种方法存在安全风险,应谨慎使用。

sudo chown -R $USER /usr/local/lib/pythonX.X/  # 将 X.X 替换为 Python 的版本号

但是,修改系统目录的权限可能会导致安全问题,不建议在生产环境中使用。

4. 删除 .pydistutils.cfg 文件

有时,用户目录中的 .pydistutils.cfg 文件会导致权限问题。删除此文件可能会解决问题。

rm ~/.pydistutils.cfg

5. 使用 sudo-H 选项

如果必须使用 sudo 来安装包,推荐使用 -H 选项来设置正确的 HOME 目录。

sudo -H pip install <package-name>