[Python] Poetry + Pyenv + PyTorch Setup on Windows
這篇文章會說明如何在 Windows 上使用 Poetry + Pyenv + PyTorch with cuda 來建立 Python 專案。
Pyenv
由於我使用的是 windows,所以我們需要使用 pyenv-win 來管理 python 版本
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
安裝好之後輸入 pyenv --version
來確認是否安裝成功
接著是一些 pyenv 的指令
pyenv install -l # 列出所有 python 版本
pyenv install <python version> # 安裝 python 版本
pyenv global <python version> # 設定全域 python 版本
pyenv versions # 列出所有安裝過的 python 版本
pyenv uninstall <python version> # 移除 python 版本
如果我們要不同專案中使用不同的 python 版本,可以使用以下指令,在當前目錄下建立一個 .python-version
檔案,pyenv 會自動讀取這個檔案
pyenv local <python version>
Poetry
Poetry 可以做到以下的事情 :
- 管理 Python 專案的相依套件
- 建立虛擬環境
- 發布與打包套件
Poetry 在 windows 上的安裝如下 :
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
將 %APPDATA%\Python\Scripts
加入到環境變數中,接著輸入 poetry --version
來確認是否安裝成功
接著建立專案並且安裝套件
poetry init
poetry add <package name>
poetry add <package name> --dev
poetry remove <package name>
我們可以先設定 virtualenvs.in-project
為 true
,這樣虛擬環境就會被建立在專案的資料夾中
poetry config virtualenvs.in-project true
接著使用以下指令來建立虛擬環境
poetry env use <python version>
或使用以下指令進入虛擬環境
poetry shell
可以安裝一些常用的開發套件
poetry add flake8 black isort ipdb --dev
PyTorch
Poetry 預設會從 PyPI 上抓取套件,但是 Pytorch 需要從另外的地方下載,所以我們需要使用以下指令新增來源 (需要修改最後的 cuda 版本)
poetry source add --priority=supplemental torch https://download.pytorch.org/whl/cu124
接著安裝 PyTorch
poetry add torch==2.4.1+cu124 --source torch
執行完之後,pyproject.toml
應該會是類似以下的樣子
pyproject.toml
[tool.poetry]
name = "test"
version = "0.1.0"
description = ""
authors = [""]
readme = "README.md"
package-mode = false
[tool.poetry.dependencies]
python = "^3.10"
torch = {version = "2.4.1+cu124", source = "torch"}
[[tool.poetry.source]]
name = "torch"
url = "https://download.pytorch.org/whl/cu124"
priority = "supplemental"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"