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

ein*_*lum 6 permissions python software-installation pip python3

我刚刚手动安装了 Devuan GNU/Linux chimaera 和一堆软件包。还安装了python-is-python3

\n

我现在运行,例如:

\n
pip install pymonetdb\n
Run Code Online (Sandbox Code Playgroud)\n

我得到:

\n
Defaulting to user installation because normal site-packages is not writeable\nCollecting pymonetdb\n  Downloading pymonetdb-1.6.2-py2.py3-none-any.whl (74 kB)\n     \xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81 74.6/74.6 kB 867.9 kB/s eta 0:00:00\nInstalling collected packages: pymonetdb\nSuccessfully installed pymonetdb-1.6.2\n
Run Code Online (Sandbox Code Playgroud)\n

我想知道为什么我收到有关站点包不可写的消息。是因为我不是root用户吗?但如果是这种情况,它甚至不应该尝试写入某些仅根文件夹。如果不是因为我不是 root - 哪个目录具有不适当的权限,需要我修复(或让 root 用户修复)?

\n

ein*_*lum 2

我想知道为什么我收到有关站点包不可写的消息。

这是因为 pip 默认尝试安装到系统范围的目录(“site-packages”)。

是因为我不是root用户吗?

是的。

但如果是这种情况,它甚至不应该尝试写入某些仅根文件夹。

事实上,它不应该:它知道它是由非 root 用户运行的,并且知道它因此几乎肯定会失败,因此在这种情况下不应该默认尝试安装到用户特定的目录(如果不是总是如此)。但是 - 它仍然会尝试、失败和抱怨,这很愚蠢,但这正是开发人员出于某种原因认为他们应该做的事情。

您可以通过像这样运行它来避免警告:

pip install --user some_package_name
Run Code Online (Sandbox Code Playgroud)

...但恕我直言,真正应该发生的是有人提交有关此问题的错误报告,并依靠开发人员不要尝试失败。