我的磁盘上有几个虚拟环境(几十个),它们是由Python3.6的venv
模块创建的。现在我匆忙升级到了Ubuntu19.10,直到后来我才注意到,从公认的来源来看,Ubuntu19.10根本没有3.6版本。通过在我的主目录下定位bin/python3
并在包含的文件夹上运行python3.7 -mvenv --upgrade
,我成功地升级了这些虚拟环境的Python版本
现在,当python3.7 -mvenv --upgrade
在虚拟环境中升级Python时,它不会在lib/python3.7/site-packages
下的venv
中重新安装我以前的包版本。我想我可以通过安装Python3.6来做到这一点,从venv
中获取需求,然后将venv升级到Python3.7,pip install -r
ing-,如果我的新操作系统有Python3.6安装可用的话
有没有其他方法可以以相当自动化的方式(可能主要是pip freeze
使用旧的lib/python3.6
目录)实现这一点,而无需我从源代码安装Python 3.6、使用conda或从一些随机PPA安装3.6?我希望整体升级所有环境,以便将来当我需要使用随机环境时,它将继续使用Python 3.7
在新的3.7版本中,您应该有
pkg_resources
可用-setuptools
在创建时自动安装。如果没有,就pip install setuptools
setuptools
库代码实际上是pip
为了使pip freeze
工作而提供的代码。但是你可以手动冻结它您可以将该输出抛出到
requirements.txt
文件中,并且可能有一个正在运行的重建站点,不需要python3.6
运行时请注意,此方法可能不是100%万无一失的,因为项目可以通过在python3.6和python3.7的分发元数据中使用环境标记来声明单独的依赖关系树(请参见PEP 508)。3.6站点中安装的项目也可能根本不支持3.7。然而,在3.6和3.7之间的小版本中,很少看到这种情况,因此在实践中仅使用工作集应该“足够好”
相关问题 更多 >
编程相关推荐