# Pyenv + Poetry 相關指令 ## Anaconda work flow ```bash= conda create --name=<env name> python=<python version> conda activate <env name> pip install requirements.txt ``` - 以環境名稱做為虛擬環境的切換,當環境很多的時候,有時候會搞混哪個Project 要使用哪個環境。 - 套件相依性管理上,`pip uninstall <package>` 只**卸載主套件**而不會對相依套件洩載及管理,會造成環境髒且臃腫。 ## Pyenv 安裝 ### Window 使用**PowerShell** 安裝後,並**重啟PowerShell** 即可。 ```bash= 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" ``` 可以透過以下指令確認是否安裝成功 ```bash= pyenv --version # 顯示pyenv 版本,確認是否安裝成功 pyenv install --list # 查看所以可安裝的Python 版本 pyenv install <version> # 安裝特定Python 版本 pyenv version # 查看目前使用的Python 版本與安裝路徑 ``` ## Poetry 安裝 ### macOS / Linux / WSL(Windows Subsystem for Linux) ```bash= curl -sSL https://install.python-poetry.org | python3 - ``` 記得設置環境變數 - `$HOME/.local/bin` for Unix 在`.zshrc` `.bashrc` `.bash_profile` 新增 ```bash export PATH=$PATH:$HOME/.local/bin ``` ### Windows ```bash= (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python - ``` - 手動添加`%APPDATA%\Python\Scripts` 至環境變數 ### 建議設定 ```bash= # 將虛擬環境綁定在專案上 poetry config virtualenvs.in-project true ``` ## Pyenv + Poetry Work Flow ```bash= git clone <git url> # 複製Project cd <project folder> # 進入Project 資料夾 pyenv install <Python version> # (Optional) 如果沒安裝過該Python 版本 poetry env use <Python version> # 於Project folder 中創建Python 虛擬環境 poetry install # 依照poetry.lock 安裝套件至虛擬環境 ``` ## Poetry 指令 ```bash= poetry init # 於專案資料夾初始化 poetry config --list # 查看config 內容 portry config <var> <value> # 設定config 中的var為value poetry env use/remove python # 建立/移除虛擬環境 可另外指定Python 版本 poetry shell # 啟動虛擬環境,需先移至專案目錄下,使用exit 即可退出 poetry add/remove <package> # 相當於pip install/uninstall,會更改pyproject.toml & poetry.lock 內容 # -G dev, --group dev 將只在開發環境使用的套件放置於dev-dependencies 區塊中 poetry lock # 若有手動更改pyproject.toml,需使用此指令同步更新poetry.lock 內容。 # 此指令僅會更新poetry.lock,並「不會安裝」套件至虛擬環境。 poetry install # 安裝套件至虛擬環境 poetry update # 更新全部可能可以更新的套件 poetry update <package> # 更新特定套件 poetry show --tree # 使用樹狀結構呈現poetry.lock 的套件內容 poetry show <package> --tree # 使用樹狀結構呈現poetry.lock 的特定套件內容 poetry export -f requirements.txt -o requirements.txt --without-hashes # 相當於pip freeze ``` 1. poetry env use python 預設會統一建立在特定目錄Cache中,建議將虛擬環境綁定在專案上。` ```bach poetry config virtualenvs.in-project true ``` 2. **`poetry ad`** 相當於 **`pip install`** 3. **`poetry.lock`** 相當於 **`requirements.txt`** ## Reference [Pyenv Github](https://github.com/pyenv-win/pyenv-win#installation) [Poetry](https://python-poetry.org/docs/) [Poetry 完全入門指南](https://blog.kyomind.tw/python-poetry/)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.