python中poetry安裝依賴
前言
Poetry 是一個用于管理 Python 項目的依賴和構(gòu)建過程的工具。它簡化了包管理和虛擬環(huán)境的創(chuàng)建,讓開發(fā)者更容易管理項目的依賴關(guān)系。它的出現(xiàn)讓我們對依賴卸載更干凈。
1. 為什么pip install poetry 會造成依賴沖突
直接使用 pip install poetry
安裝 Poetry 可能會造成依賴沖突,原因主要是 pip
在全局環(huán)境中安裝包的方式可能導(dǎo)致多個項目或工具之間的依賴沖突。這些沖突通常發(fā)生在以下幾種情況下:
1.1 全局環(huán)境依賴混淆:
pip install poetry
會將 Poetry 及其依賴項安裝到 Python 的全局環(huán)境中。如果全局環(huán)境中已經(jīng)存在某些依賴項,并且它們的版本與 Poetry 依賴的版本不同,安裝可能會覆蓋這些依賴項,導(dǎo)致其他依賴同樣庫的工具或項目無法正常工作。- 例如,Poetry 依賴某個特定版本的
tomlkit
庫,而系統(tǒng)中的某個項目依賴不同版本的tomlkit
。安裝 Poetry 后,tomlkit
版本被改變,系統(tǒng)中的其他項目可能因此失敗。
1.2 工具和項目之間的沖突:
- 當(dāng)你在全局環(huán)境中安裝多個工具(例如,Poetry 和另一個 Python 工具),這些工具可能依賴于同一個庫但要求不同版本。
pip
在安裝時并不會為每個工具創(chuàng)建獨立的環(huán)境,所以這會導(dǎo)致一個工具的依賴被另一個工具的依賴覆蓋,從而導(dǎo)致功能失效。
1.3 缺乏依賴隔離:
pip
默認(rèn)安裝到全局環(huán)境中,所有項目和工具共享同一個依賴池。這意味著不同項目或工具之間無法隔離它們的依賴,這會增加依賴沖突的風(fēng)險。- 由于全局環(huán)境中所有包共享一個空間,因此多個包之間的版本需求可能不一致,造成某些包運行失敗。
1.4 多出很多額外依賴:
下載之前:
?下載之后:
2. 不推薦pipx安裝
這里有個機翻 https://www.tobyblogs.cn/PoetryCn/1/
3. poetry高級安裝
3.1 默認(rèn)安裝路徑
By default, Poetry is installed into a platform and user-specific directory:
~/Library/Application Support/pypoetry
on MacOS.~/.local/share/pypoetry
on Linux/Unix.%APPDATA%\pypoetry
on Windows.
3.2自定義安裝
如果您想更改此設(shè)置,可以定義 $POETRY_HOME 環(huán)境變量:
curl -sSL https://install.python-poetry.org | POETRY_HOME=/etc/poetry python3 -
如果要安裝預(yù)發(fā)行版本,可以通過將 --preview 選項傳遞給安裝腳本或使用 $POETRY_PREVIEW 環(huán)境變量來實現(xiàn):
curl -sSL https://install.python-poetry.org | python3 - --preview curl -sSL https://install.python-poetry.org | POETRY_PREVIEW=1 python3 -
如果要安裝特定版本,可以使用 --version 選項或 $POETRY_VERSION 環(huán)境變量:
curl -sSL https://install.python-poetry.org | python3 - --version 1.2.0 curl -sSL https://install.python-poetry.org | POETRY_VERSION=1.2.0 python3 -
4. 安裝poetry實戰(zhàn)
4.1 下載安裝腳本文件
windows+R 輸入powershell
然后在powershell中輸入:
Invoke-WebRequest -Uri https://install.python-poetry.org -OutFile install-poetry.py
在當(dāng)前路徑下可以看到install-poetry.py被生成
4.2 通過腳本安裝poetry
然后通過這個install-poetry.py安裝poetry
首先創(chuàng)建自定義文件夾
cd D:\Program Files: D: mkdir Poetry
然后切換到install-poetry.py所在的目錄,輸入以下命令
$env:POETRY_HOME = "D:/Program Files/Poetry"; python install-poetry.py
4.3 配置環(huán)境變量
把poetry安裝目錄下的bin添加到系統(tǒng)環(huán)境變量
PS D:\Program Files\Poetry\bin> Get-ChildItem | Format-List Name, Length, LastWriteTime Name : poetry.exe Length : 0 LastWriteTime : 2024/8/18 14:09:11
檢查是否安裝成功
PS C:\Users\Administrator> poetry --version Poetry (version 1.8.3) PS C:\Users\Administrator>
4.4 修改poetry下載的三方包虛擬環(huán)境
查看poetry配置
PS C:\Users\Administrator> poetry config --list cache-dir = "C:\\Users\\Administrator\\AppData\\Local\\pypoetry\\Cache" experimental.system-git-client = false installer.max-workers = null installer.modern-installation = true installer.no-binary = null installer.parallel = true keyring.enabled = true solver.lazy-wheel = true virtualenvs.create = true virtualenvs.in-project = null virtualenvs.options.always-copy = false virtualenvs.options.no-pip = false virtualenvs.options.no-setuptools = false virtualenvs.options.system-site-packages = false virtualenvs.path = "{cache-dir}\\virtualenvs" # C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs virtualenvs.prefer-active-python = false virtualenvs.prompt = "{project_name}-py{python_version}" warnings.export = true PS C:\Users\Administrator>
不想讓poetry下載的三方包在默認(rèn)路徑下,讓他下載到我們自定義的目錄。 virtualenvs.in-project
是 Poetry 的一個配置選項,用于決定虛擬環(huán)境是否應(yīng)該放在項目目錄內(nèi)。
virtualenvs.in-project = true
: 如果這個選項設(shè)置為 true
,Poetry 會在項目的根目錄下創(chuàng)建一個 .venv
文件夾,并在其中創(chuàng)建虛擬環(huán)境。這意味著每個項目都有一個獨立的虛擬環(huán)境位于項目目錄內(nèi),便于管理和隔離。
PS C:\Users\Administrator> poetry config virtualenvs.in-project true PS C:\Users\Administrator> poetry config --list cache-dir = "C:\\Users\\Administrator\\AppData\\Local\\pypoetry\\Cache" experimental.system-git-client = false installer.max-workers = null installer.modern-installation = true installer.no-binary = null installer.parallel = true keyring.enabled = true solver.lazy-wheel = true virtualenvs.create = true virtualenvs.in-project = true virtualenvs.options.always-copy = false virtualenvs.options.no-pip = false virtualenvs.options.no-setuptools = false virtualenvs.options.system-site-packages = false virtualenvs.path = "{cache-dir}\\virtualenvs" # C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs virtualenvs.prefer-active-python = false virtualenvs.prompt = "{project_name}-py{python_version}" warnings.export = true
4.5 在老項目中使用poetry
cd myproject poetry init
poetry init --no-interaction 不適用交互模型,生產(chǎn)的toml文件配置是默認(rèn)參數(shù)
4.6 在新項目中使用poetry
poetry new my_project
到此這篇關(guān)于python中poetry安裝依賴的文章就介紹到這了,更多相關(guān)poetry安裝依賴內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python批量上傳文件信息到服務(wù)器的實現(xiàn)示例
在進行軟件測試的過程中,經(jīng)常會需要準(zhǔn)備一批數(shù)據(jù),本文主要介紹了Python批量上傳文件信息到服務(wù)器的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2023-12-12python爬取Ajax動態(tài)加載網(wǎng)頁過程解析
這篇文章主要介紹了python爬取Ajax動態(tài)加載網(wǎng)頁過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09Python3中編碼與解碼之Unicode與bytes的講解
今天小編就為大家分享一篇關(guān)于Python3中編碼與解碼之Unicode與bytes的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02關(guān)于python3的ThreadPoolExecutor線程池大小設(shè)置
這篇文章主要介紹了關(guān)于python3的ThreadPoolExecutor線程池大小設(shè)置,線程池的理想大小取決于被提交任務(wù)的類型以及所部署系統(tǒng)的特性,需要的朋友可以參考下2023-04-04用Python把csv文件批量修改編碼為UTF-8格式并轉(zhuǎn)為Excel格式的方法
有時候用excel打開一個csv文件,中文全部顯示亂碼,然后手動用notepad++打開,修改編碼為utf-8并保存后,再用excel打開顯示正常,本文將給大家介紹一下用Python把csv文件批量修改編碼為UTF-8格式并轉(zhuǎn)為Excel格式的方法,需要的朋友可以參考下2023-09-09