正品率最高的购物网站,wordpress卸载 数据库,2017最新网站icp备案,wordpress改变文章字体大小文章目录 前言1. 为什么pip install poetry 会造成依赖冲突1.1 全局环境依赖混淆#xff1a;1.2 工具和项目之间的冲突#xff1a;1.3 缺乏依赖隔离#xff1a;1.4 多出很多额外依赖#xff1a; 2. 不推荐pipx安装3. poetry高级安装3.1 默认安装路径3.2自定义安装 4. 安装p… 文章目录 前言1. 为什么pip install poetry 会造成依赖冲突1.1 全局环境依赖混淆1.2 工具和项目之间的冲突1.3 缺乏依赖隔离1.4 多出很多额外依赖 2. 不推荐pipx安装3. poetry高级安装3.1 默认安装路径3.2自定义安装 4. 安装poetry实战4.1 下载安装脚本文件4.2 通过脚本安装poetry4.3 配置环境变量4.4 修改poetry下载的三方包虚拟环境4.5 在老项目中使用poetry4.6 在新项目中使用poetry 前言
Poetry 是一个用于管理 Python 项目的依赖和构建过程的工具。它简化了包管理和虚拟环境的创建让开发者更容易管理项目的依赖关系。它的出现让我们对依赖卸载更干净。 1. 为什么pip install poetry 会造成依赖冲突
直接使用 pip install poetry 安装 Poetry 可能会造成依赖冲突原因主要是 pip 在全局环境中安装包的方式可能导致多个项目或工具之间的依赖冲突。这些冲突通常发生在以下几种情况下
1.1 全局环境依赖混淆
pip install poetry 会将 Poetry 及其依赖项安装到 Python 的全局环境中。如果全局环境中已经存在某些依赖项并且它们的版本与 Poetry 依赖的版本不同安装可能会覆盖这些依赖项导致其他依赖同样库的工具或项目无法正常工作。例如Poetry 依赖某个特定版本的 tomlkit 库而系统中的某个项目依赖不同版本的 tomlkit。安装 Poetry 后tomlkit 版本被改变系统中的其他项目可能因此失败。
1.2 工具和项目之间的冲突
当你在全局环境中安装多个工具例如Poetry 和另一个 Python 工具这些工具可能依赖于同一个库但要求不同版本。pip 在安装时并不会为每个工具创建独立的环境所以这会导致一个工具的依赖被另一个工具的依赖覆盖从而导致功能失效。
1.3 缺乏依赖隔离
pip 默认安装到全局环境中所有项目和工具共享同一个依赖池。这意味着不同项目或工具之间无法隔离它们的依赖这会增加依赖冲突的风险。由于全局环境中所有包共享一个空间因此多个包之间的版本需求可能不一致造成某些包运行失败。
1.4 多出很多额外依赖
下载之前
下载之后 2. 不推荐pipx安装 这里有个机翻 https://www.tobyblogs.cn/PoetryCn/1/
3. poetry高级安装
3.1 默认安装路径
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自定义安装
如果您想更改此设置可以定义 $POETRY_HOME 环境变量
curl -sSL https://install.python-poetry.org | POETRY_HOME/etc/poetry python3 -如果要安装预发行版本可以通过将 --preview 选项传递给安装脚本或使用 $POETRY_PREVIEW 环境变量来实现
curl -sSL https://install.python-poetry.org | python3 - --preview
curl -sSL https://install.python-poetry.org | POETRY_PREVIEW1 python3 -如果要安装特定版本可以使用 --version 选项或 $POETRY_VERSION 环境变量
curl -sSL https://install.python-poetry.org | python3 - --version 1.2.0
curl -sSL https://install.python-poetry.org | POETRY_VERSION1.2.0 python3 -4. 安装poetry实战
4.1 下载安装脚本文件 windowsR 输入powershell 然后在powershell中输入
Invoke-WebRequest -Uri https://install.python-poetry.org -OutFile install-poetry.py在当前路径下可以看到install-poetry.py被生成
4.2 通过脚本安装poetry 然后通过这个install-poetry.py安装poetry 首先创建自定义文件夹
cd D:\Program Files:
D:
mkdir Poetry然后切换到install-poetry.py所在的目录输入以下命令
$env:POETRY_HOME D:/Program Files/Poetry; python install-poetry.py4.3 配置环境变量 把poetry安装目录下的bin添加到系统环境变量
PS D:\Program Files\Poetry\bin Get-ChildItem | Format-List Name, Length, LastWriteTimeName : 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下载的三方包虚拟环境
查看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下载的三方包在默认路径下让他下载到我们自定义的目录。 virtualenvs.in-project 是 Poetry 的一个配置选项用于决定虚拟环境是否应该放在项目目录内。
virtualenvs.in-project true: 如果这个选项设置为 truePoetry 会在项目的根目录下创建一个 .venv 文件夹并在其中创建虚拟环境。这意味着每个项目都有一个独立的虚拟环境位于项目目录内便于管理和隔离。
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 true4.5 在老项目中使用poetry
cd myproject
poetry initpoetry init --no-interaction 不适用交互模型生产的toml文件配置是默认参数4.6 在新项目中使用poetry
poetry new my_project