名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。

Python3.8をいれた

リリースされてた

Python Release Python 3.8.0 | Python.org https://www.python.org/downloads/release/python-380/

一応ローカルは pyenv ベースで管理しているが、PRが受け付けられたのがついさっきだったので、MacのHomebrewで試したけれども、まだ入らなかった。

PRはこれ https://github.com/pyenv/pyenv/pull/1416

普段リリースされてからどれくらいかかるのかわからないが、だいたい1日以内にはmasterにマージされるっぽい?のかなっていうのを掴む。

そのあと、最新版の pyenv を brew 経由で無理やり入れた。過去に自分で書いた記事が役に立った。

qrunch.net

[10/15 23:17:37] $ brew install --HEAD --force pyenv
Updating Homebrew...
Error: pyenv 1.2.13_1 is already installed
To install HEAD_1, first run `brew unlink pyenv`.
Warning: Skipping (old) /usr/local/Cellar/pyenv/1.2.13_1 due to it being linked

[10/15 23:18:34] $ brew unlink pyenv
Unlinking /usr/local/Cellar/pyenv/1.2.13_1... 4 symlinks removed
pyenv:11: command not found: pyenv                                                                                      

[10/15 23:18:45] $ brew install --HEAD --force pyenv
Updating Homebrew...
==> Cloning https://github.com/pyenv/pyenv.git
Cloning into '/Users/yumechi/Library/Caches/Homebrew/pyenv--git'...
==> Checking out branch master
Already on 'master'
Your branch is up to date with 'origin/master'.
==> src/configure
==> make -C src
🍺  /usr/local/Cellar/pyenv/HEAD-d6d6bc8_1: 656 files, 2.4MB, built in 27 seconds
Removing: /usr/local/Cellar/pyenv/1.2.13_1... (650 files, 2.4MB)
Removing: /Users/yumechi/Library/Caches/Homebrew/pyenv--1.2.13_1.mojave.bottle.tar.gz... (625.3KB)

[10/15 23:19:29] $ pyenv install 3.8.0
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.8.0.tar.xz...
-> https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz
Installing Python-3.8.0...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.8.0 to /usr/local/var/pyenv/versions/3.8.0

無事インストールできましたとさ。

[10/15 23:34:10] $ python 
Python 3.8.0 (default, Oct 15 2019, 23:23:09) 
[Clang 11.0.0 (clang-1100.0.33.8)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 'aaaaa'
>>> if (n := len(a)) > 10:
...     print(f"List is too long ({n} elements, expected <= 10)")
... 
>>> n
5
>>> exit()

新機能はベータ版とかRC版の時点で、様々な人がQiita記事に色々書いてたのが見えたので、リリースノートと照らし合わせながらサンプルコードでも眺めてみようかな。