python版本虚拟环境_如何从以前的Python版本升级虚拟环境?

本问题已经有最佳答案,请猛点这里访问。

我将系统上的Python从Python 3.5升级到3.6,现在我在Python 3.5中创建的所有virtualenv都不再可用。仅安装Python 3.6时,如何获取安装在Python 3.5 virtualenv中的软件包列表?我需要使用与旧Python 3.5 virtualenv相同的软件包来设置新的Python 3.6 virtualenv。

我知道我可以查看lib/python3.5/site-packages目录并手动创建列表,但是我希望使用一种自动运行方式,例如pip freeze针对旧的虚拟环境。我不希望不重新安装旧版本的Python。

我已经尝试过python -m venv --upgrade命令,该命令的帮助文本为"假设Python已就地升级,请升级环境目录以使用此版本的Python"。但是,这实际上并没有在virtualenv中重新安装软件包,它只是创建一个名为lib/python3.6/site-packages的实质上为空的目录。此外,我不得不删除venv中损坏的symlink bin/python3.5,以便甚至对旧的virtualenv运行python -m venv --upgrade。

使用pkg_resources.find_on_path()查找具有与pip freeze相同逻辑的软件包。即使virtualenv用于旧版本的Python,这也可以工作:

rav@novascotia:~/venvs$ python

Python 3.6.1 (default, Mar 27 2017, 00:27:06)

[GCC 6.3.1 20170306] on linux

Type"help","copyright","cred

你可能感兴趣的:(python版本虚拟环境)