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

Olg*_*ski 7 python windows pip

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

Olg*_*ski 9

我在 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 命令提示符中键入并执行以下命令:

\n
pip freeze > reqs.txt\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

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

\n
pip install -r reqs.txt\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

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

\n
pip list \xe2\x80\x93-outdated\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
pip install --upgrade <package-name>\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

虚拟环境的补充:

\n

当您进入虚拟环境目录(在Windows命令提示符中):,例如D:\\python_projects\\data_visualization\\env\\Scripts,键入activate将其激活。然后创建类似于上面描述的 reqs.txt 文件。然后,将文件复制到临时目录。此后删除虚拟环境,例如使用 Windows 资源管理器删除目录内容env。然后,在我们选择的 Windows 中使用 python 版本,使用env目录创建虚拟环境(请参阅: https: //docs.python.org/3/library/venv.html)。将 regs.txt 文件复制到新创建的D:\\python_projects\\data_visualization\\env\\Scripts目录中。如上所述,在 regs.txt 文件的支持下安装站点包。

\n