【问题标题】:Upgrading Python to 3.7 inside venv? [duplicate]在 venv 中将 Python 升级到 3.7? [复制]
【发布时间】:2019-04-02 02:45:51
【问题描述】:

如何将venv 中的当前Python 解释器升级到v3.7.1。不幸的是,3.5.2 对于我使用的一些库来说已经过时了,所以我想切换到 3.7.1。

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

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

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

【问题讨论】:

  • AFAIK 无法在 venv 中更新 python,对我来说,典型的方法是创建一个新的,所以选项 2...

标签: python flask porting python-3.7 python-venv


【解决方案1】:

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

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

>>> pip freeze >requirements.txt

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

>>> virtualenv -p python3.7 venvname

激活venv:

>>> source venvname/bin/activate

然后安装您的要求:

>>> pip install -r requirements.txt

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

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

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

根据您要升级的版本,知道 Python 2 的生命周期结束于 2020 年 1 月而 Python 3.5 的生命周期结束于 2020 年 9 月 (more details) 可能会很有用。如果您有选择(如果重要的话),使用仍受支持的 Python 版本会更安全。

【讨论】:

    【解决方案2】:

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

    我宁愿创建一个新的 virtualenv。

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

    所以:

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

    【讨论】:

      猜你喜欢
      • 2020-08-15
      • 2021-05-06
      • 2020-11-02
      • 2018-12-19
      • 2021-01-11
      • 2020-05-09
      • 1970-01-01
      • 2020-08-25
      • 2023-03-31
      相关资源
      最近更新 更多