24

使用ruby-install,要安装最新的稳定 ruby​​ 版本,只需要ruby-install ruby.

但是,with pyenvone 似乎需要做一些可笑之类的事情pyenv install $(pyenv install --list | sed 's/^ //' | grep '^\d' | grep --invert-match 'dev\|a\|b' | tail -1)

有一个更好的方法吗?gem update与 ruby​​ ( vs )相比,为什么 python 工具似乎总是让安装最新版本成为一个迟钝的过程pip list --outdated | awk '!/Could not|ignored/ { print $1 }' | xargs pip install --upgrade?我希望我是缺少某些东西的人,但我永远无法在网上找到简单的解决方案。

4

5 回答 5

12

试试https://github.com/momo-lab/pyenv-install-latest

安装...

git clone https://github.com/momo-lab/pyenv-install-latest.git "$(pyenv root)"/plugins/pyenv-install-latest

最新的 2.7 版本的 python...

pyenv install-latest 2.7

对于python 3 ...

pyenv install-latest

于 2017-04-04T15:47:49.510 回答
9

以下内容比您建议的“hack”短一点,并假设您不想要3.5.0b1.

pyenv install $(pyenv install --list | grep -v - | grep -v b | tail -1)

于 2015-10-29T20:27:49.903 回答
5
pyenv update && pyenv install 3.10:latest

FWIW 截至 2021 年,此问题终于得到修复(迟到总比没有好):pyenv/pyenv#1831允许您为版本的任何部分添加后缀:latest(只是避免:latest单独产生奇怪的结果)以获得该部分的最新修订,例如现在3:latest将安装 3.11 alpha,3.10:latest将安装 3.10.0。

在处理非主线时它不是很完美,:latest也不是在所有情况下都有效,但它是进步的。

于 2021-12-09T13:43:55.357 回答
1

将此答案相结合,另一种选择是:

pyenv install --list | grep --extended-regexp "^\s*[0-9][0-9.]*[0-9]\s*$" | tail -1

正则表达式查找以数字开头^[0-9]、后跟任意数量的点和/或数字[0-9.]*并以数字结尾的行[0-9]$。可能会出现前导^\s*或尾随\s*$空格,但不是必须的。

编辑:安装:

pyenv install $(pyenv install --list | grep --extended-regexp "^\s*[0-9][0-9.]*[0-9]\s*$" | tail -1)
于 2021-01-28T18:49:54.860 回答
-5

因为使用最新的“稳定”版本几乎不是一个好主意。不同的上游维护者有不同的稳定概念(我的小 pymumble fork 和 eglibc 对发布质量有非常不同的概念)。最新的稳定版本通常会引入重大更改,并且通常不建议在不了解您将哪些更改带入代码库的情况下盲目升级。

在 ruby​​ 的情况下,1.8 的线程是 greenthreads,而 1.9 的线程是内核线程。虽然他们维护相同的 API,但在我所知的任何领域中,当您的语言支持 C gems 时完全更改底层线程模块是不可接受的。将任何多线程代码升级到最新的稳定 ruby​​ 很可能会破坏一切。Arch Linux 在将每个人升级到 python 3 时也经历了类似的惨败,忽略了它自己的 repos 对 python 2 的无数依赖。

通常的解决方案是依赖发行版的 repo 来获取新版本的 python,并使用 python 的 virtualenv 或 python3 的 venv 来创建基于特定版本的 python 的环境。

于 2015-04-16T23:27:55.427 回答