更新Python时保留已安装的软件包

更新Python时保留已安装的软件包,python,installation,Python,Installation,我已经在Windows10上安装了python 3.7。升级到3.8的推荐方法似乎是进行新安装,这意味着我将安装这两个版本。我不需要两个版本,但我想保留我为3.7版安装的所有软件包 请问我如何做到这一点?3.8的新path变量是否也将取代3.7的变量 这种常见用例的处理过程似乎异常复杂。我遗漏了什么吗?我建议转到康达来管理您的环境 我所从事的涉及python的大多数开发项目的当前想法是,版本和库是在每个项目的基础上指定的。Conda允许您冻结环境,使其更便于携带。您可以生成一个environm

我已经在Windows10上安装了python 3.7。升级到3.8的推荐方法似乎是进行新安装,这意味着我将安装这两个版本。我不需要两个版本,但我想保留我为3.7版安装的所有软件包

请问我如何做到这一点?3.8的新path变量是否也将取代3.7的变量


这种常见用例的处理过程似乎异常复杂。我遗漏了什么吗?

我建议转到康达来管理您的环境

我所从事的涉及python的大多数开发项目的当前想法是,版本和库是在每个项目的基础上指定的。Conda允许您冻结环境,使其更便于携带。您可以生成一个environment.yml文件,允许某人从头开始重新创建您的环境,并且您只能维护给定项目所需的包


根据您最初的问题,您可以将PYTHONPATH设置为指向旧目录和新目录。但我不能保证这些库能够正常工作,因为可能存在版本兼容性问题

简单的解决方案将在CMD中完成

pip freeze > packages.txt
这将把您当前的所有软件包写入文本文件“packages.txt”

然后像卸载任何Windows程序一样卸载Python3.7,然后安装Python3.8和CMD

pip install -r packages.txt
这将安装您以前拥有的所有软件包


尽管我建议您在使用环境的同时,也使用无手Python版本和包

一种方法是运行:

python3.7 -m pip freeze > installed.txt
然后,在安装新的Python版本后,您可以安装以下软件包:

python3.8 -m pip install -r installed.txt
您为旧Python安装安装的包可能与新版本不兼容。因此,保留两个Python安装,然后为每个项目使用虚拟环境更安全

您可以使用该项目所需的Python版本为每个项目创建virtualenv,并仅在该特定项目的virtualenv中安装依赖项。这样可以避免项目A需要某个包的旧版本,而项目B需要更新版本的情况。如果您在全球范围内安装所有软件包,则在这种情况下会遇到问题

另请参见

您是否看到了以下状态:“如果您正在从3.x升级到3.y(次要版本),则系统会提示您“立即安装”。在这种情况下,您不是在升级,而是在安装新版本的Python。”我不需要两个版本,但我希望保留为3.7版安装的所有软件包。为什么呢?您是否不使用虚拟环境?这种常见用例的处理过程似乎异常复杂。我真的很想知道它到底有多普遍,不幸的是我不知道任何相关的统计数据。我错过什么了吗P