默认为用户安装,因为普通站点包不可写

默认为用户安装,因为普通站点包不可写

Defaulting to user installation because normal site-packages is not writeable

当我们使用不正确的 Python 版本来安装包时,会出现错误“默认为用户安装,因为正常的站点包不可写”。

要解决该错误,请运行python3 -m pip install <package-name>命令。

Defaulting to user installation because normal site-packages is not writeable Collecting numpy Downloading numpy-1.23.4-py2.py3-none-any.whl Installing collected packages: numpy

导致该错误的最常见原因是pip安装包时使用了不正确的 Python 版本。

使用python -m pip命令安装包

解决该错误的一种方法是使用命令python -m pip

# 👇️ for Python 2 (or inside a virtual environment) python -m pip install numpy # 👇️ for Python 3 python3 -m pip install numpy # 👇️ for Windows py -m pip install numpy

确保替换numpy为您要安装的软件包的名称。

使用正确的Python版本安装包

如果错误仍然存​​在,请获取您的 Python 版本并确保使用正确的 Python 版本安装包。

python --version

获取Python版本

例如,我的Python版本是3.10.4,所以我会安装带有
python3.10 -m pip install <package-name>.

python3.10 -m pip install numpy # 👇️ if you get permissions error use pip3 (NOT pip3.X) sudo python3.10 -m pip install numpy

pip请注意,版本号与我正在使用的版本相对应。

如果这没有帮助,请尝试pip install使用该--user
选项运行命令。

如果您有多个 Python 版本,请确保
您的 IDE 正在运行正确的 Python 解释器

使用--user选项运行 pip install

当我们没有安装软件包所需的权限时,也会发生此错误。

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

pip install numpy --user pip3 install numpy --user python -m pip install numpy --user python3 -m pip install numpy --user py -m pip install numpy --user

确保将numpy占位符替换为您尝试安装的包的实际名称,例如pip install tensorflow --user

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

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

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

使用管理权限运行安装命令

您可以尝试的另一件事是使用 提升您的权限sudo

sudo pip install numpy sudo pip3 install numpy sudo python -m pip install numpy sudo python3 -m pip install numpy

sudo前缀用于提升您在 macOS 或 Linux 上的权限。

在 Windows 上,您必须以管理员身份打开 CMD。

以管理员身份运行 CMD:

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

windows以管理员身份运行cmd

  1. 以管理员身份打开 shell 后,重新运行该pip install命令。
pip install numpy pip3 install numpy python -m pip install numpy python3 -m pip install numpy py -m pip install numpy

创建虚拟环境

如果这没有帮助,请尝试创建虚拟环境。

  1. 创建虚拟环境。
  2. 激活虚拟环境。
  3. pip install在虚拟环境处于活动状态时运行命令。
# 👇️ use correct version of Python when creating VENV python -m venv venv # 👇️ activate on Unix or MacOS source venv/bin/activate # 👇️ activate on Windows (cmd.exe) venv\Scripts\activate.bat # 👇️ activate on Windows (PowerShell) venv\Scripts\Activate.ps1 # 👇️ install the specific package in the virtual environment pip install numpy

如果该python -m venv venv命令不起作用,请尝试以下 2 个命令:

  • python3 -m venv venv
  • py -m venv venv

确保根据您的操作系统和 shell 使用正确的命令来激活虚拟环境。

您的虚拟环境将使用用于创建它的 Python 版本。

确保不要以 root 用户身份创建虚拟环境,例如,因为这样您就只允许 root 用户安装软件包。 sudo

如果您使用创建虚拟环境sudo,请尝试更改其权限或在不使用 的情况下重新创建它sudo

sudo chmod -R 777 venv

上面的命令假设您的虚拟环境位于名为 的文件夹中
venv

777意味着授予所有用户对该目录内容的完全访问权限。

如果这没有帮助,请尝试升级pip

升级你的pip版本

pip以下是在所有操作系统上进行升级的命令。

哪个命令有效取决于您的操作系统和 Python 版本。

# 👇️ 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 # 👇️ if you get a permissions error sudo easy_install --upgrade pip # 👇️ if you get a permissions error when upgrading pip pip install --upgrade pip --user # 👇️ upgrade pip scoped to the current user (if you get permissions error) python -m pip install --user --upgrade pip python3 -m pip install --user --upgrade pip # 👇️ Installing directly from get-pip.py (MacOS and Linux) curl https://bootstrap.pypa.io/get-pip.py | python # 👇️ if you get permissions issues curl https://bootstrap.pypa.io/get-pip.py | sudo python # 👇️ alternative for Ubuntu/Debian sudo apt-get update && apt-get upgrade python-pip # 👇️ alternative for Red Hat / CentOS / Fedora sudo yum install epel-release sudo yum install python-pip sudo yum update python-pip

如果您收到错误“ModuleNotFoundError:没有名为 ‘pip’ 的模块”,请单击
以下文章

如果代码示例中的命令不适合您,请单击上面的链接。

升级 pip 后,
还要
升级 setuptools 。

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

pip install现在pipsetuptools已升级,请尝试运行该命令。

您的计算机上可能安装了多个版本pip“默认用户安装”消息的常见原因是pip过时。

尝试运行python --version命令。

python --version

例如,如果输出为3.7,请尝试运行以下命令来升级pip

pip3.7 install --upgrade pip

如果这没有帮助,请尝试以管理员身份运行 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

当目录或文件被另一个进程锁定时,通常会导致该错误。

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

更改用户的访问权限

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

要解决该错误,请允许用户完全访问 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在虚拟环境处于活动状态时运行该命令来查找该目录。

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

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

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

包括系统站点包

如果这些建议都没有帮助,请尝试重新安装 Python。

在你的机器上重新安装Python

从官方 python.org网站下载最新版本 Python 的安装程序

再次启动安装程序并单击“卸载”。

卸载Python

如果出现提示,请务必勾选以下选项:

  • 为所有用户安装启动器(推荐)
  • 将 Python 添加到 PATH(这会将 Python 添加到您的 PATH 环境变量)

将 python exe 添加到路径

选中“将 python.exe 添加到路径”复选框后,单击“立即安装”。

安装完成后,Python将被正确安装并配置。

额外资源

如果您在安装或升级时遇到问题pipsetuptools查看以下文章: