这是我第一次升级python(从3.11.3到3.12.0),过程中出现了一些问题。我想我已经以某种方式理解了 Path 在 Windows 上的工作原理,但现在还没有完全了解。目前我遇到的问题是,python 和 pip 仍然默认使用旧的 python 安装,所以这导致了一些问题:
我的理解是,调用的 pip 版本是由 Windows 首选的
Python\Scripts
路径条目决定的。
目前,python 3.11和3.9已安装到
C:\Program Files\
中,并且它们的安装路径已添加到system PATH中。
然而,3.12 安装到
C:\Users\...\AppData\Local\Programs\Python\Python312\
并将安装路径添加到 user PATH。
我应该删除指向 python 3.9 和 3.11 的 PATH 条目吗? Windows 是否更喜欢系统路径而不是用户路径?
在 Scripts 目录中,我找不到 pipx 和 virtualenv 的条目,并且两个 PATH 中都没有单独的 pipx 和 virtualenv 条目。我的终端如何知道在哪里可以找到正确的可执行文件?这是由 pip 管理的吗?如何让我的系统使用新安装的使用 python3.12 的 virtualenv 和 pipx 版本?
我通过 pipx 安装了一些工具,例如孵化、mypy、ipython、virtualenv。每次进行 python 升级时,我都需要重新安装所有这些工具吗?或者有没有办法告诉 pipx 我希望它现在使用新的 python 版本?
系统路径:
C:\Program Files\Python311\Scripts\
C:\Program Files\Python311\
C:\Program Files\Python39\Scripts\
C:\Program Files\Python39\
用户路径:
C:\Users\UserName\AppData\Local\Programs\Python\Python312\Scripts\
C:\Users\UserName\AppData\Local\Programs\Python\Python312\
C:\Users\UserName\AppData\Local\Programs\Python\Launcher\
C:\users\UserName\appdata\roaming\python\python311\scripts
通过大量的试验和错误,我弄清楚了,也许它对某些人有帮助:
就我而言,我需要从系统路径中删除 python 3.9 和 3.11(尤其是 Scripts 文件夹,即 pip.exe 所在的位置)。我还从用户路径中删除了 3.11/Scripts。
为了让我的终端注意到 3.12 路径,我必须在安装 python 3.12 后重新登录。user 路径中的所有条目似乎都是这种情况。
如果通过
pip
安装,pipx 和 virtualenv 特定于它们安装时使用的 python 版本。所以我需要使用正确版本的 pip 重新安装 pipx 和 virtualenv。
是的,有。当从 python3.12 使用 pip 安装 pipx 时,它会自动识别与 3.11 一起安装的版本的安装。所以升级python版本时,只需重新安装pipx即可。