损坏的 pip 安装仅适用于 sudo

Broken pip installation only works with sudo

如果我尝试使用 pip 安装某些东西,例如python3 -m pip install torch==1.9.1+cu111 --find-links https://download.pytorch.org/whl/torch_stable.html 我收到以下错误:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python3/dist-packages/pip/commands/install.py", line 290, in run
    with self._build_session(options) as session:
  File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 69, in _build_session
    if options.cache_dir else None
  File "/usr/lib/python3.6/posixpath.py", line 80, in join
    a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not int

这将引发相同的错误:python3 -m pip install --user torch==1.9.1+cu111 --find-links https://download.pytorch.org/whl/torch_stable.html。 使用 sudo 安装可以完成工作,但似乎不正确。我该如何修复我的点数?我在 Ubuntu 18.04 和 Python 3.6

尝试

python3 -m pip install --user torch==1.9.1+cu111 --find-links https://download.pytorch.org/whl/torch_stable.html

这将安装到您的用户目录中。

编辑

pip 安装软件包的确切位置取决于许多因素,包括是否 virtual environments or third party environment managers (e.g. conda) are used. It is of course OS and version dependent, too. There are lots of blogs and SO posts dedicated to the subject, like

默认情况下,如果既不使用虚拟环境也不使用 conda,大多数 Linux 风格的最新 python/pip 版本会写入 /usr/lib[64]/usr/local/lib[64],两者这是根可写的。一种可能的解决方法是使用 --user 标志,如上所述。