问题标签 [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 投票
1 回答
1424 浏览

python - 使用 Poetry 从 Git 自动安装 Python 依赖项

我使用Poetry进行 Python 依赖管理,以及PyCrate进行 ASN.1 编码/解码。

PyCrate 是从 GitHub 拉取的依赖项,一旦从 GitHub 拉取,就可以通过在 PyCrate 目录中运行安装文件来安装。

如果可能的话,我想将安装步骤集成到我pyproject.toml的 . 我目前pyproject.toml包括 PyCrate 如下:

这将从 GitHub 存储库中拉出 PyCrate,但会拉入srcPoetry 创建的 virtualenv 中的文件夹中。

有没有办法在执行时自动运行安装脚本poetry install?我已经研究过使用Poetry scripts,但到目前为止还没有能够正确启动和运行它。

我当前的设置涉及运行 a poetry install,然后手动运行setup.py installfor PyCrate,但是如果可以的话,我想让我poetry install执行完整的设置。

对此的任何帮助将不胜感激。

0 投票
5 回答
10015 浏览

python - 诗歌和 PyTorch

我最近发现poetry管理依赖项。在一个项目中,我们使用 PyTorch。我该如何添加这个poetry

我们正在研究无法访问 CUDA GPU(用于简单的道路推理/测试)的机器和我们可以访问 CUDA GPU 的工作站。是否可以使用诗歌来确保每个开发人员都使用相同的 PyTorch 版本?

似乎没有明显的方法来决定要安装哪个 PyTorch 版本。我曾考虑将不同的安装说明添加为额外的依赖项,但我找不到获得等效设置的选项,例如:

pip3 install torch==1.3.1+cpu torchvision==0.4.2+cpu -f https://download.pytorch.org/whl/torch_stable.html

我可以设置不同在线轮子的总路径,例如: https://download.pytorch.org/whl/torch_stable.html/cpu/torch-1.3.1%2Bcpu-cp36-cp36m-win_amd64.whl

但我宁愿不直接在 git 中使用它们……我在诗歌中看到的最接近的选项是手动下载它们,然后使用file = X命令。

0 投票
0 回答
973 浏览

python-3.x - Poetry install 与来自 git 的软件包一起崩溃

我们使用 gitreceive[0] 将 deploy 与 git push 一起使用 Git receive 使用 pre-receive 钩子来执行诗歌。我们的依赖项之一是从 github 中提取的。

诗歌在安装过程中崩溃。这只发生在使用 pre-recieve 钩子调用时。以用户本身的身份调用它不会导致崩溃。

Pipenv 对此没有任何问题。

我能做些什么来解决这个问题?

[0] https://github.com/progrium/gitreceive

0 投票
4 回答
30867 浏览

python - 如何使用 pyproject.toml 设置和诗歌运行脚本?

  1. 我正在使用诗歌来创建 .whl 文件。
  2. 我有一个在远程主机上运行的 ftp 服务器。
  3. 我写了一个 python 脚本log_revision.py(路径保存在数据库中)。

目前,我每次运行poetry build推荐后手动运行脚本。我知道pyproject.toml有, [tool.poetry.scripts]但我不知道如何使用它来运行 python 脚本。

我试过

然后poetry run my-script但我总是得到一个错误 AttributeError: module 'my_package_namen' has no attribute 'log_revision'

1. 有人能帮我理解如何运行祝愿吗?

作为一个短期选项(没有 git 和参数)我尝试使用poetry publish -r http://192.168.1.xxx/home/whl -u hello -p world但我收到以下错误

2. 我在做什么,我该如何解决?

会给予任何帮助,谢谢!

0 投票
1 回答
5605 浏览

django - 如何让 tox 和诗歌协同工作以支持测试 Python 依赖项的多个版本?

我正在切换一个当前用作测试的项目,以查看差异是什么pipenvpoetry该项目是一个简单的、可再分发的 Django 应用程序。它支持 Python 3.6-8,以及 Django 2.2 和 3.0。我有一个tox.ini文件涵盖了 Python 和 Django 的所有组合,因此:

我遇到的问题(pipenv世界上不存在)是该poetry install语句将始终用文件中的任何内容覆盖该deps部分中的任何内容poetry.lock(如果不存在则将自动生成)。这意味着测试矩阵永远不会针对 Django 2.2 进行测试——因为每个 tox virtualenv 都会默认安装 Django 3.0。

我不明白这应该如何工作 - 安装依赖项是否应该poetry尊重它正在安装的现有环境?

所以 - 我的问题是 - 我如何设置一个多版本的 tox(或 travis)测试矩阵,以诗歌作为依赖管理器?

pyproject.toml将 Python / Django 版本定义为:

生成的poetry.lock文件(未提交)具有以下 Django 版本信息:


更新:包括干净的毒物输出

这是我删除锁定文件并重新创建 tox 环境时的结果。如您所见,toxDjango==2.2作为依赖项安装在 virtualenv 中,但poetry随后将其更新到3.0安装时。

我需要一个运行诗歌安装的解决方案,尊重现有的包安装。即如果pyproject.tomlstatesDjango = "^2.2 || ^3.0"和 2.2 已经安装,则固定到该版本 - 不要尝试升级。

更新 2

按照下面 sinoroc 的说明 - 我已更新 tox 文件以删除skip_dist和包含isolated_build. 这行得通,有点。tox 构建包并安装它 - 但只有非开发版本,不包括pytestcoverage以及我想在以后包含的大量 linting 工具。即我想通过 tox 运行的工具在诗歌中被指定为开发依赖项。这里有一个解决方案,将所有这些都包含在 tox 文件中 - 但这似乎弄巧成拙 - 因为那时我有诗歌和 tox 都声明依赖关系。


更新3:解决方案

0 投票
1 回答
846 浏览

docker - 复制文件 - 在 Dockerfile 旁边 - 不起作用并阻止 docker build

我正在尝试构建一个内部带有 mlflow 服务器的 docker 容器,其中包含用于依赖的诗歌 toml 文件。(两个 toml 完全相同,这只是一种尝试找出的方法)
树:

├── docker-entrypoint.sh
├── Dockerfile
├── 文件
│ └── pyproject.toml
├── git.sh
├── pyproject.toml
└── README.md

正如你所看到的,我的 toml 文件在 Dockerfile 旁边COPY pyproject.toml ./仍然不起作用

Dockerfile

构建命令:

我收到此错误:

pyproject.toml

码头入口点.sh



如果我RUN pwd; ls在第一次COPY获得之前添加:

0 投票
2 回答
5046 浏览

python-poetry - 如何将诗歌构建的python包添加到另一个带有诗歌的python项目中?

我正在做两个项目,我们称它们Project AProject B.

Project B需要一些模块Project A,所以我做了poetry build一个Project A。当我手动执行pip install dist/blabla.whl由poetry on 生成的构建时,我可以访问该模块Project A

但是当我做 a 时poetry add project-a git+ssh://git@gitlab.blabla.co/nubela/project-a.git#develop,它说

找不到包 project-a 的匹配版本

当然,我理解是因为project-a它没有经典地与 setup.py 和其他东西打包在一起。然后如何在poetry add <git-repo-uri>不涉及自托管 pypi 实例的情况下执行?

我可以将 .whl 文件推送到项目 git repo,这有帮助吗?

0 投票
2 回答
1095 浏览

python - 如何创建一个空的 python 包?

我想使用诗歌工具创建一个空的(元)包,主要是为了简化将依赖项列表组合在一起的过程。如果我按如下方式创建我的 project.toml:

然后执行poetry build,我得到一个错误:

我是否遗漏了一些东西来告诉诗歌这个包裹没有内容?

附录:我很乐意使用诗歌作为创建一个.dist-info包含元数据的目录的方法,以便pip看到已安装的元数据包,如果有更好的工具,我很乐意切换。

0 投票
3 回答
1969 浏览

python - 如何在诗歌中使用 nox?

我想在我用诗歌管理的项目中使用nox

不顺利的是在 nox 会话中安装 dev 依赖项。

我有noxfile.py如下所示:

如何在 nox 会话中安装 dev 依赖项?

0 投票
1 回答
2628 浏览

python - 使用 Python 诗歌的安装后脚本

使用 Python setuptools 安装后脚本

正是这个问题,但有诗歌,没有设置工具。

我想跑

当我的包安装时。使用 Setuptools 您可以只修改setup.py,但在 Poetry 中特别没有setup.py.

我真正想做的是生成一个默认.mypackage_config文件并将其放在有用的地方。如果没有任意代码,我看不到如何做到这一点,但是 Poetry不允许安装任意代码。有没有办法做到这一点?