在 windows 中将 python 升级到 3.10;我是否必须手动重新安装所有站点包?

Upgrade python to 3.10 in windows; Do I have to reinstall all site-packages manually?

我在 windows 10 64 位 python 3.9 中安装了站点包。我想在 windows 10 64 位上安装 python 3.10.2 并找到一种在 python 3.10.2 中自动安装软件包的方法,与我目前在 python 3.9。我也对 windows 11 64 位的这个问题的答案感兴趣。

我在 windows 10 64 位中升级到 python 3.10.2。要正确安装这些包,请在必要时安装适当版本的 Microsoft Visual C++ 编译器。详情可阅读https://wiki.python.org/moin/WindowsCompilers。从 3.9 升级到 python 3.10.2,事实证明我不得不这样做,因为在安装软件包的过程中出现了错误。在安装python 3.10.2之前,在windows命令提示符下输入并执行以下命令:

pip freeze > reqs.txt

此命令将适用于 pip 的版本中所有已安装软件包的名称写入 reqs.txt 文件。如果您 运行 具有管理员权限的命令提示符,reqs.txt 文件将保存在目录 C:\WINDOWS\system32.

然后,在安装 python 3.10.2 并将其添加到 PATH 中的路径后,在命令提示符的帮助下,您需要发出命令:

pip install -r reqs.txt

这将开始安装与 python 3.9 相同版本的软件包。如果出现问题,例如安装 lxml 时出现安装错误,那么您可以从 regs.txt 文件中删除带有安装导致问题的软件包名称的条目,然后手动安装。要编辑 reqs.txt 文件,您需要管理员权限。最简单的方法是运行管理员模式下的命令提示符,输入reqs.txt回车编辑

我后来决定将丢失的软件包更新到最新版本,因为我怀疑 python 3.10.2 旧版本不兼容。 这意味着当升级到 python 3.10.2 时,值得问问自己升级所有软件包是否更好。为此,您可以使用以下命令生成过时软件包的列表:

pip list –-outdated

在命令提示符中打印列表后,您可以使用以下命令升级过时的软件包:

pip install --upgrade <package-name>

这可以通过编辑 reqs.txt 文件并将标记 == 更改为 > 来自动完成,这将加快升级速度。标记 > 只应针对过时的软件包进行更改,否则您将收到错误消息:“找不到满足要求的版本...”。

虚拟环境补充:

当你进入一个虚拟环境目录时(在windows命令提示符下):,例如D:\python_projects\data_visualization\env\Scripts,输入activate来激活它。然后创建类似于上述描述的 reqs.txt 文件。然后,将文件复制到临时目录。在此之后删除虚拟环境,例如通过删除 env 目录的内容来使用 windows 探索器。然后,使用我们选择的 windows 中 python 的版本,使用 env 目录创建一个虚拟环境(参见:https://docs.python.org/3/library/venv.html)。将 regs.txt 文件复制到新创建的 D:\python_projects\data_visualization\env\Scripts 目录。如上所述,在 regs.txt 文件的支持下安装 site-packages。

不,您不需要重新安装 python 包。

conda create --name project-env python=3.x

您还可以查看另一种方法来安装 python 版本 Install python version