当前位置: 代码网 > it编程>前端脚本>Python > python中poetry安装依赖

python中poetry安装依赖

2025年01月04日 Python 我要评论
前言poetry 是一个用于管理 python 项目的依赖和构建过程的工具。它简化了包管理和虚拟环境的创建,让开发者更容易管理项目的依赖关系。它的出现让我们对依赖卸载更干净。1. 为什么pip ins

前言

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_preview=1 python3 -

如果要安装特定版本,可以使用 --version 选项或 $poetry_version 环境变量:

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实战

4.1 下载安装脚本文件

windows+r 输入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.py

4.3 配置环境变量

在这里插入图片描述

把poetry安装目录下的bin添加到系统环境变量

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下载的三方包虚拟环境

查看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: 如果这个选项设置为 true,poetry 会在项目的根目录下创建一个 .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 = true

4.5 在老项目中使用poetry

cd myproject
poetry init
poetry init --no-interaction       不适用交互模型,生产的toml文件配置是默认参数

4.6 在新项目中使用poetry

poetry new my_project

到此这篇关于python中poetry安装依赖的文章就介绍到这了,更多相关poetry安装依赖内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com