pip3 安装到 python3.10,尽管后者不是默认的 Python 版本,并显示权限被拒绝

pip3 安装到 python3.10,尽管后者不是默认的 Python 版本,并显示权限被拒绝

在处理一个项目时,我将 Ubuntu 20.04 默认 Python 3 版本更改为 Python 3.10,具体操作如下:

  1. 在 bashrc 中,添加alias python3 = python3.10并获取它
  2. ln -sf python3.10 python3意思是“python3 命令意味着 python3.10”

我知道我搞砸了,并回滚了这些

  1. 从 bash 和 source 中删除第一行
  2. 在 2 中运行相同的命令,但用 3.8 替换 3.10

但是,现在每当我执行任何 pip 或 pip3 安装时,我都会得到这个

build-system@buildsystem-H310M-H-2-0:~$ pip3 install pyserial
Collecting pyserial
  Using cached pyserial-3.5-py2.py3-none-any.whl (90 kB)
Installing collected packages: pyserial
Successfully installed pyserial-3.5
ERROR: Exception:
Traceback (most recent call last):
  File "/home/build-system/.local/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper
    status = run_func(*args)
  File "/home/build-system/.local/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 247, in wrapper
    return func(self, options, args)
  File "/home/build-system/.local/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 553, in run
    self._handle_target_dir(
  File "/home/build-system/.local/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 563, in _handle_target_dir
    ensure_dir(target_dir)
  File "/home/build-system/.local/lib/python3.10/site-packages/pip/_internal/utils/misc.py", line 105, in ensure_dir
    os.makedirs(path)
  File "/usr/lib/python3.10/os.py", line 215, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/usr/lib/python3.10/os.py", line 215, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/usr/lib/python3.10/os.py", line 215, in makedirs
    makedirs(head, exist_ok=exist_ok)
  [Previous line repeated 4 more times]
  File "/usr/lib/python3.10/os.py", line 225, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/Users'

每当我输入命令来检查当前版本时,例如

  1. python3 -V
  2. which python

我得到了 3.8.10。这是 Ubuntu 20.04 的默认版本吗?

请告诉我为什么尽管从 3.10 回滚到 3.8(默认)仍然会发生这种情况,我需要做什么才能解决这个问题?

答案1

这里的主要问题是,我不知怎么地在 config.h 文件中设置了一条从 /Users 开始的路径,该文件的作用是设置指向新安装的软件包所在位置的路径。我将路径更改为 '/usr/lib/Python3.8',这是理所当然的,因为 '/Users' 是为 MacOS 用户准备的,而不是 Debian。

所以,这是由于路径设置错误导致的问题。

相关内容