Dockerで最新バージョンのインタプリタを使う
Pythonのenumがイテラブルになっていて便利だと思って試したら、バージョンが古くて怒られた。 code:py
from enum import Flag
class Lifestyle(Flag):
"""三食昼寝付き?"""
WITH_NAP = 1 << 1
BREAKFAST = 1 << 2
LUNCH = 1 << 3
DINNER = 1 << 4
conds = Lifestyle.BREAKFAST | Lifestyle.DINNER
print(list(conds)) # 問題のコード
code:plain
Traceback (most recent call last):
File "/home/iigau/toy/python-practice/src/bitfield.py", line 12, in <module>
print(list(conds))
TypeError: 'Lifestyle' object is not iterable
ホストのsrc/にソースファイルがあると仮定して、
いちいち長いコマンドを打ってられないので、現在のシェル限りで有効なエイリアスを作る。
code:sh
python3 -V # Python 3.10.12 (ホスト OS 側の Python)
alias python3='docker container run --rm -v ./src:/src/ python:alpine python3'
python3 -V # Python 3.12.5
python3 src/bitfield.py
一時的にホスト OS 側の Python を使いたかったら /usr/bin/python3 ... のように絶対パスを指定すればおk