【问题标题】:What happens if I use update-alternatives to manage python versions instead of virtualenv or pyenv?如果我使用 update-alternatives 来管理 python 版本而不是 virtualenv 或 pyenv 会发生什么?
【发布时间】:2020-03-26 07:03:33
【问题描述】:

我知道有像 virtualenvpyenv 这样的东西可以在一台机器上管理 python 版本。但是,如果我使用 update-alternatives 更改默认 python 版本会发生什么? AFAIK,它将在系统方面进行更改,而 virtualenvpyenv 可以管理每个项目(或目录)的版本。那么当我一次只为一个项目工作时,是否可以简单地使用 update-alternatives 代替?因为像 pip 这样的东西是以python -m pip ... 运行的,所以我用这种方式管理 pip 包似乎也是安全的。当我一次只为一个项目工作时,我应该进一步考虑什么?

【问题讨论】:

  • 为什么您想使用更新替代方案?我认为它不会像 virtualenv 那样正确处理不同的库集。
  • @AKX 例如,关于支持的库,我想使用 python 3.7 而不是 3.8。
  • 我想你会用 pyenv + virtualenv 玩得更好。
  • @AKX 感谢您的评论,但这对我来说有点不方便,因为我有时只是打开 VS Code,修复几行并运行......为此,我必须关心 python解释器版本。
  • VS Code 对 virtualenvs 有很好的支持。要在多个解释器版本上测试您的代码,还可以查看 tox + pyenv + tox-pyenv。

标签: python python-3.x virtualenv pyenv


【解决方案1】:

好的。现在我明白我误解了什么。

通过使用

  • update-alternatives,我可以更改默认的python版本。
  • pyenvvirtualenv,我可以隔离项目的环境。

假设我有用于 python3.7 的项目 AB 和用于 python3.8 的 C。 项目 AB 分别需要 pip 包 X-1.0 和 X-1.3。 在这种情况下,我可以使用 pyenvvirtualenv,但 update-alternatives 无法处理这种情况,尽管它可以将 python 版本更改为 3.7(并加载对应的包)用于项目AB

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多