pip/python:普通站点包不可写

low*_*e00 52 python pip

我有一台新 Macbook - 一个用户安装了它,然后我安装了一个新用户(我的),授予管理员权限并删除了旧用户。我在 OS Catalina 上。

自从安装以来,我一直有几个权限问题。VSCode 找不到 Jupyter Notebook,pip~/Library/Python/3.7/site-packages.

当我这样做时,which python3我得到usr/bin/python3. 当我这样做时,pip3 install <package>我得到:Defaulting to user installation because normal site-packages is not writeable然后它说它已经安装了,即使我在这样做时无法访问它import <package>

很明显,这是一个权限问题,pip无法安装到“基本”python,而且他们python找不到我安装到~/Library/Python/3.7/site-packages.

我试过重新安装操作系统,但由于我没有进行全新安装,它没有改变任何东西。我错过了什么?我究竟该如何修复权限?我希望将软件包安装在哪里(venv当然,但我想要一些全局软件包(如jupyter)。

Dam*_*mio 27

正如@TomdeGeus 在评论中提到的,这个命令对我有用:

蟒蛇3:

python3 -m pip install [package_name]
Run Code Online (Sandbox Code Playgroud)

蟒蛇2:

python -m pip install [package_name]
Run Code Online (Sandbox Code Playgroud)

  • 即使我使用此答案中的命令,我也遇到这个问题 (49认同)
  • tnx 人。将 python 添加到命令开头对我有帮助 (3认同)

Chr*_*son 14

最好不要直接使用系统提供的Python。不用管它,因为操作系统可能会以不希望的方式更改它,正如您所经历的那样。

最佳实践是配置您自己的 Python 版本并使用virtualenv(对于 Python 2)或venv(对于 Python 3)在每个项目的基础上管理它们。这消除了对系统提供的 Python 版本的所有依赖,并将每个项目与机器上的其他项目隔离开来。

如果需要,每个项目都可以有不同的 Python 点版本,并获得自己的site_packages目录,因此 pip 安装的库也可以按项目有不同的版本。这种方法是一个主要的问题回避者。

  • @chris-johnson:你说的一切都有道理,但我到底该怎么做呢?在我的新 MBP M1 上,当我尝试在“venv”中执行“pip3 install gjango”时,我收到此错误消息:“默认为用户安装,因为普通站点包不可写错误:找不到可满足 gjango 的要求(来自版本:无)错误:找不到 gjango` 的匹配发行版 (9认同)

小智 11

我在 Ubuntu 上使用 Anaconda 并遇到了同样的问题。我通过以下步骤修复了它:

停用当前环境

conda deactivate
Run Code Online (Sandbox Code Playgroud)

然后,基础环境激活。我也停用了基础 conda 环境。为此,我conda deactivate再次使用了。

最后,我通过以下命令直接激活我的项目环境(而不是从基础环境激活)。之后,我成功安装了预期的包并且工作完美。

conda activate myenv
pip install somepackage
Run Code Online (Sandbox Code Playgroud)


Shr*_*ari 9

须藤 pip 安装

为我工作。但不建议使用 sudo 运行 pip install。我在 BIGSUR 上遇到的问题是,它正在使用系统 python。一旦我使用安装了 python 3.9

酿造安装python@3.9

然后 pip 工作正常


que*_*o42 7

python3.7 -m pip install [package_name]

(当然,您应该使用您拥有的版本)

为我解决了。

投票最多的答案python3 -m pip install [package_name]在这里对我没有帮助。

就我而言,这是由与默认安装的主导 3.6 版本冲突引起的。您可能会问自己为什么系统上有 3.6,您现在很可能不会使用该版本。原因是 3.6 被用作许多软件包安装程序的独立默认 python 版本。这些安装程序不想检查您使用的是哪个版本以及它是否适合,他们只是使用 3.6 作为默认版本,无论您喜欢与否。

这是一个例子证明--upgrade pip

pip3 install --upgrade pip

默认为用户安装,因为普通的站点包不可写
需求已经满足:pip in /home/USERNAME/.local/lib/python3.6/site-packages (20.3.1)

python3 -m pip install --upgrade pip

默认为用户安装,因为普通的站点包不可写
需求已经满足:pip in /home/USERNAME/.local/lib/python3.6/site-packages (20.3.1)

python3.7 -m pip install --upgrade pip

收集 pip
缓存条目反序列化失败,条目被忽略
使用缓存https://files.pythonhosted.org/packages/ab/11/2dc62c5263d9eb322f2f028f7b56cd9d096bb8988fcf82d65fa2e4057afe/pip-piphlyn33
安装成功包:安装 pip-20.3.1

  • 不幸的是,这对“python3.10”不起作用。 (10认同)
  • 是的...“python3”有问题,但切换到调用“python3.9”解决了问题。痛苦... (3认同)

Chr*_*s S 1

全新安装的 Debian 9.12 也有同样的问题。重新启动我的服务器解决了这个问题。