使用pyenv安装最新的python版本

时间:2015-04-16 22:34:17

标签: python macos pyenv

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

然而,pyenv似乎需要像pyenv install $(pyenv install --list | sed 's/^ //' | grep '^\d' | grep --invert-match 'dev\|a\|b' | tail -1)那样做一些荒谬的事情。

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

4 个答案:

答案 0 :(得分:6)

尝试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

答案 1 :(得分:-1)

结合 thisthis 答案,另一种选择是:

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)

答案 2 :(得分:-2)

以下内容比建议的“hack”短一些,并假设您不想要3.5.0b1这样的版本。

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

答案 3 :(得分:-3)

因为在最新的"稳定"一切的版本很少是一个好主意。不同的上游维护者有一个不同的稳定概念(我的小pymumble fork和eglibc有非常不同的释放质量概念)。最新的稳定版本通常会引入重大变化,而且通常不建议盲目升级,而不了解您为代码库带来的变化。

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

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