在 venv 中将 Python 升级到 3.7?

sai*_*tam 5 python porting flask python-venv python-3.7

如何将 a 中的当前Python解释器升级venv到 v3.7.1。不幸的是,对于我使用的某些库,3.5.2 已过时,因此我想切换到 3.7.1。

选项 1:是更新我的 venv 中的解释器。

选项 2:是使用 Python 3.7.1 作为解释器创建一个新的 venv 并重新部署整个项目及其所有依赖项和调整?

将 Flask 应用程序移植到较新的解释器的典型方法是什么?

Nic*_*ick 10

最简单的方法是创建一个新的 venv。

如果您requirements.txt的应用程序中没有文件,现在是时候生成一个文件并将其提交到您的版本控制软件(Git、Mercurial 等)中。激活旧的venv:

>>> pip freeze >requirements.txt
Run Code Online (Sandbox Code Playgroud)

使用所需的 python 版本创建新的 venv 并为其命名:

>>> virtualenv -p python3.7 venvname
Run Code Online (Sandbox Code Playgroud)

激活 venv:

>>> source venvname/bin/activate
Run Code Online (Sandbox Code Playgroud)

然后安装您的要求:

>>> pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

应该像旧的一样设置新的 venv,给出或接受奇怪的版本冲突。修复这些冲突并重新运行,pip install -r直到不再有错误。

值得对这个新的临时 venv 进行测试,直到您确定删除原始文件并在 Py3.7 上重新创建它为止。

一般来说,如果您有兴趣重命名 venv,则此问题中有更多详细信息,但不建议这样做。


小智 0

我认为不可能更新现有的 virtualenv (你会在互联网上找到一些方法来做到这一点,但他们基本上创建一个新的 / 安装一个新的 python 版本并替换 virtualenv 中的版本)。

我宁愿创建一个新的 virtualenv。

此外,通过保留当前的 ​​virtualenv,如果在迁移过程中遇到任何问题,您将能够回滚。

所以 :

  1. 创建一个新的 git 分支:myproject-python37
  2. 创建一个新的虚拟环境
  3. 进行迁移