Pyenv Notes
pyenv 的功能和使用的原因
pyenv 是用來在系統裡安裝各種不同版本的 python,
並能夠方便的切換 python 版本的工具。
當同時有不同 python 版本的專案需要開發或維護時,
就會需要使用 pyenv 來協助切換 python 的版本。
pyenv 的功能和使用的原因pyenv 是用來在系統裡安裝各種不同版本的 python,
並能夠方便的切換 python 版本的工具。
當同時有不同 python 版本的專案需要開發或維護時,
就會需要使用 pyenv 來協助切換 python 的版本。
在出現 asyncio 前,
當一隻 Python 程式有很多需要並行執行的 task,
想要提升程式效能,
只能選用 multiprocessing 或 threading;
Python 3.4 之後又多出了 asyncio 的選擇。asyncio 可以用來撰寫 coroutines,
並使用 event loop 並行執行 coroutines,
減少程式不必要的等待時間以提升效能。
當有很多 Python project 要維護,
不同的 project 有可能使用相同的 python libraries 的不同版本,
不使用 virtual environment 而將所有的 python modules 都裝在自己的機器上就會造成版本衝突。
過去使用 virtualenv + requirement.txt 的機制可以在不同的 project 使用同一個套件的不同版本,
也能夠讓新加入的開發者或 production 環境可以快速安裝 project 需要的套件,
HTTP 是一種 stateless 的 protocol,
也就是說每一次的 request / response 都是獨立的,
和之前或之後的 request / response 無關。
相同的 request 就會回應相同的 response,
不會因為之前的 request / response 內容而有不同。

把在 Linux 和 Mac 上 terminal 的設定也搬到 Windows 上,
方便操作。
用 Windows terminal 可以
這些功能比原生 WSL 能支援的多的多,
也可以設定的和我在 Linux 或 Mac 的開發環境比較相似,
於是就決定選用 windows terminal 了。
工作的時候習慣用 Linux 或 mac 的 terminal,
找了個時間在家裡的 PC 上把 WSL 的環境也設定一下方便切換工作環境。
WSL 2 是基於 Hyper-V 在 virtual machine 中跑完整的 Linux kernal,
WSL 1 則是在 Windows 系統上對 Linux 功能的模擬,
因此 WSL 2 比 WSL 1 支援更多 Linux 原生的功能和 system call。