问题标签 [python-poetry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1568 浏览

python-3.x - 从 pyproject.toml 文件更新包版本的最佳方法

我的工作流程在包的init .py 中嵌入了一个__version__包变量。当使用(或类似的)诗歌更新包版本时,我希望我的嵌入变量也更新。poetry version patch__version__

我目前使用这样的预提交钩子(git):

有没有更好的方法我错过了,因为那个钩子看起来有点“笨拙”。

0 投票
1 回答
3815 浏览

python - 使用 pyproject.toml 文件从私人仓库安装 python 诗歌

嗨,我正在尝试使用诗歌来安装包含我的私人仓库的软件包,但它似乎不起作用。知道做错了什么吗?

我收到错误消息因为 package1 依赖于 package2 不匹配任何版本,版本解决失败但能够使用我私人仓库中的 pip 安装包

0 投票
1 回答
1353 浏览

python - 没有使用 tar.gz 的 pip 安装名为“Cython”的模块

我使用 Poetry 为我的示例包 ( https://github.com/iamishalkin/cyrtd ) 构建 tar.gz 和 whl 文件,然后尝试在 pipenv 环境中安装包。tar.gz 安装失败,这是一段日志:

Cython 已安装并可从虚拟解释器调用。即使在日志中写入,也满足了对 cython 的要求。奇怪的是——几个月前一切正常。我还尝试了 conda venv,升级了 cython 和诗歌,没有任何帮助。还尝试了与 Cython 的 setup_requires 的弱相关解决方法?- 仍然没有运气

UPD:我在这里找到了一些肮脏的解决方法:https ://luminousmen.com/post/resolve-cython-and-numpy-dependencies

这个想法是添加

在 Cython.Build 导入之前

在此之后,我得到这些日志:

仍在寻找更好的解决方案

UPD2: 主要文件内容:build.py:

0 投票
1 回答
740 浏览

python - 使用诗歌为车轮指定 Python 标记

我正在考虑将我的 Python 库从Pipenvsetup.py迁移到Poetry。以前,为了构建我的项目,我会运行

对于我正在构建的包,支持的最低 Python 版本是 3.6,因此我在setup.cfg文件中添加了以下内容,以便在构建的轮子中指定(基于this):

但是,在 Poetry 中,poetry build使用了 comamnd,它忽略了这一部分,setup.cfg而是py3在轮子上放置了一个通用标签。是否有任何等效的方法可以使用 Poetry 将标签放到生成的轮子上?

0 投票
1 回答
6030 浏览

python - 如何使用诗歌开始一个新的 Django 项目?

如何使用诗歌开始一个新的 Django 项目?

使用 virtualenv 很简单:

什么将等同于使用诗歌?

0 投票
0 回答
326 浏览

python-poetry - Python Poetry 与 scikit-umfpack 明显不兼容

我写了一个依赖 scikit-umfpack 的包,刚刚发现了 Python Poetry。

我正在尝试为诗歌设置 .toml 文件来管理 umfpack。

在输入poetry add的时候,建议使用scikit-umfpack 0.3.2版本,所以好像poetry知道。

但是,如果我在 .toml 文件中使用以下依赖项:

然后我在诗歌更新时得到以下输出:

有没有人成功地将 scikit-umfpack 与 Python 诗歌一起使用,如果是这样,如何?

0 投票
1 回答
1294 浏览

python - 如何用诗歌管理可编辑的共享库?

我有 2 个 python 项目 A 和 B

  • A 取决于 B
  • B 是其他项目使用的共享库
  • B 需要很长时间来构建和安装

以前,当我必须在新计算机上设置我的开发环境时,工作流程是:

  1. 创建虚拟环境
  2. git克隆A和B
  3. 运行 B 的设置开发
  4. 运行 A 的设置开发

现在我可以编辑 A 和 B 并将更改推送到 git,而不必每次都在 A 和 B 上重新运行设置。

现在,我想将诗歌整合到我的工作流程中。理想情况下,我希望能够git clone A运行poetry install A并让它镜像我的上述设置,但是我在通过 A 的设置安装 B 时遇到问题,同时仍然保持 B 可编辑。基于这个线程,似乎不可能在两个项目之间共享 venv。

我的权宜之计是:

  • git克隆A和B
  • 诗歌安装B
  • 编辑 A 的 pyproject.toml 指向我手动安装的 B 目录(B = {path = "../B/"}
  • 诗装A

我真的不喜欢这个工作流程,因为 A 的 pyproject.toml 现在只能在我的计算机上运行。我查看了问题线程和诗歌文档,但找不到处理这种情况的解决方案。非常感谢任何和所有建议。

A的pyproject.toml

编辑:我意识到如果我在 A 之前安装 B 并在安装 AI 之前编辑 pyproject 可以防止 2 安装 B

0 投票
2 回答
333 浏览

python - Python 诗歌 - 如何安装 64 位虚拟环境?

poetry install第一次运行时如何强制 Poetry 创建 64 位虚拟环境?

我确定我遗漏了一些简单的东西,但是我在文档中找不到任何东西,或者在 Poetry 本身的命令行帮助中找不到任何东西。

0 投票
1 回答
1205 浏览

python - 如何使用 docker 和 monorepo 组织共享库

我有的

我有 2 个共享一些代码的 python 应用程序,足以让我尝试将共享部分隔离到模块/包/库中(我故意使术语含糊不清,因为我不确定解决方案是什么) . 我所有的代码都在一个 monorepo 中,因为我希望克服管理比团队成员更多的 repo 的一些烦恼。

目前我的文件布局如下:

两者都appA使用appBand lib1lib2它们本质上是抽象共享数据库的数据模型)。appA是一个有几个组件的webapp,并不是所有的都是python。它被部署为一个涉及一堆容器的 docker 堆栈。我用诗歌管理我的依赖关系,以确保可重现的构建等......每个python组件(appAappB......)都有自己的pyproject.toml文件,虚拟环境等......

appB是单独部署的。

如果有什么不同的话,所有的开发都在 linux 上。

我需要的

我正在寻找一种干净的方式来处理库:

  • 的开发appA是在本地docker-compose设置中完成的。后端在文件更改时自动重新加载(使用 docker 卷),我希望它也发生在库中的更改上。
  • 开发appB更简单,但正在转移到 docker,所以问题是一样的。

我试过的

  • 我最初的“解决方案”是将 libs 文件夹复制到一个临时位置以便在appA. 它适用于导入,但是一旦我想更改库代码(这仍然很常见),它就会很混乱,因为我需要更改原始文件,复制,重建容器。
  • 我尝试将库符号链接到后端的 docker 环境中,但符号链接似乎不适用于 docker(它似乎没有跟随链接,因此文件不会最终出现在 docker 映像中,除非我基本上复制了docker build 上下文中的文件,这违背了链接的目的。)
  • 我已经尝试将每个库打包到一个 python 包中,并通过poetry add ../../libs/lib1它在 docker 中安装它们,因为路径不匹配,然后我回到了符号链接问题。

我确信有一种干净的方法可以做到这一点,但我无法弄清楚。我知道我可以将 repo 分解成更小的 repo 并安装依赖项,但是开发仍然会在 docker 内部引起问题,因为每次更改 lib 文件时我仍然需要重建容器,所以我宁愿保留 monorepo。

0 投票
1 回答
750 浏览

python-poetry - 'modin' 的 ModuleNotFoundError 即使它是由诗歌安装的

在线import modin.pandas as modin_pd我得到ModuleNotFoundError: No module named 'modin'。我正在使用诗歌和 JupyterLab。如果在我输入的单元格中!poetry add modin,我会ValueErrorPackage modin is already present

所以它无法安装modin,因为它已经安装但它也无法导入它。我缺少任何明显的解决方案吗?

pip freeze命令也显示modin已安装。我也尝试通过安装它,pip install但绝对没有让我最终导入这个模块。