我刚刚手动安装了 Devuan GNU/Linux chimaera 和一堆软件包。还安装了python-is-python3
。
我现在运行,例如:
pip install pymonetdb
我得到:
Defaulting to user installation because normal site-packages is not writeable
Collecting pymonetdb
Downloading pymonetdb-1.6.2-py2.py3-none-any.whl (74 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 74.6/74.6 kB 867.9 kB/s eta 0:00:00
Installing collected packages: pymonetdb
Successfully installed pymonetdb-1.6.2
我想知道为什么我收到有关站点包不可写的消息。是因为我不是root用户吗?但如果是这样的话,那也不应该尝试写入某些仅根文件夹。如果是的话不是因为我不是 root - 哪个目录具有不适当的权限,需要我修复(或让 root 用户修复)?
答案1
我想知道为什么我收到有关站点包不可写的消息。
这是因为 pip 默认尝试安装到系统范围的目录(“site-packages”)。
是因为我不是root用户吗?
是的。
但如果是这种情况,它甚至不应该尝试写入某些仅根文件夹。
事实上,它不应该:它知道它是由非 root 用户运行的,并且知道它因此几乎肯定会失败,因此在这种情况下不应该默认尝试安装到用户特定的目录(如果不是总是如此)。但是 - 它仍然会尝试、失败和抱怨,这很愚蠢,但这正是开发人员出于某种原因认为他们应该做的事情。
您可以通过像这样运行它来避免警告:
pip install --user some_package_name
...但恕我直言,真正应该发生的是有人提交有关此问题的错误报告,并依靠开发人员不要尝试失败。
答案2
这种行为是有道理的:您实际上不应该使用 pip 将软件安装到系统范围的站点包中,因为这会导致与系统包管理器发生冲突,除非您处于某种虚拟环境中,其中被弯曲到可写位置。这实际上与您是否是 root 无关。