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

python - 诗歌没有使用正确版本的 Python

我最近安装了 Pyenv 和 Poetry,并想创建一个新的 Python 3.8 项目。我已将python的版本global和版本设置为使用适当的 Pyenv 命令(例如)。当我在终端中运行时,输出符合预期。local3.8.1pyenv global 3.8.1pyenv version3.8.1.

现在,问题是当我使用 Poetry ( poetry new my-project) 创建一个新的 python 项目时,生成的pyproject.toml文件会使用 python 2.7 创建一个项目:

似乎 Poetry 默认回到 Python 的系统版本。如何更改它以使其使用随 Pyenv 安装的版本?

编辑

我正在使用与 Python 2.7 捆绑在一起的 MacOS。我认为这可能会导致这里的一些问题。我再次使用 Pyenv 重新安装了 Python 3.8,但是当我点击时,Poetry install我收到以下错误:

我应该使用 Pyenv 为项目显式创建环境,还是项目应该能够在运行后访问正确的 Python 版本pyenv local 3.8.1.?当我做后者时,没有任何变化,我仍然得到同样的错误。

0 投票
1 回答
219 浏览

python - 我使用诗歌创建了一个 Python 包,我将它发布到 PyPI,但 PyPI 中缺少我的包描述

我使用诗歌创建了一个 Python 包然后我使用诗歌构建、诗歌发布将我的包发布到了 PyPI,但是 PyPI 中缺少我的包描述。

该项目托管在 GitHub 中:https ://github.com/fsistemas/sql2json 。

PyPI中的项目没有描述:https ://pypi.org/project/sql2json

0 投票
3 回答
20209 浏览

python - VSCode 在选择解释器选项中不显示诗歌 virtualenvs

我需要帮助。无论我尝试什么,VSCode 都永远找不到诗歌 virtualenv 解释器。

使用官方文档$ curl中解释的标准方法安装了诗歌 Python 包管理器。

启动了一个项目$ poetry new finance-essentials_37-64,安装了诗歌环境$ poetry install

所以现在我可以看到我确实有一个虚拟环境:

并且这个 virtualenv 安装在: C:\Users\Jaepil\AppData\Local\pypoetry\Cache\virtualenvs,它有finance-essentials-37-64-SCQrHB_N-py3.7目录。

但是,VSCode 无法在其“选择解释器”命令中找到此虚拟环境。我只看到一堆 Anaconda 和 Pipenv 环境,但没有看到我刚刚制作的诗歌环境解释器。

我也按照此处的建议添加"python.venvPath": "~/.cache/pypoetry/virtualenvs",了我的内容,但无济于事。还是不行。settings.json

我还尝试了绝对路径,通过添加"python.venvPath": "C:\\Users\\Jaepil\\AppData\\Local\\pypoetry\\Cache\\virtualenvs",相同的设置,但它也不起作用。

VSCode 设置参考声明它具有python.poetryPath默认设置,但它似乎也不起作用。"poetry"在这种情况下我应该更改默认值吗?

python.poetryPath

“诗歌”

指定 Poetry 依赖管理器可执行文件的位置(如果已安装)。默认值“诗歌”假定可执行文件位于当前路径中。当 Poetry 可用并且工作区文件夹中有一个poetry.lock 文件时,Python 扩展使用此设置来安装包。

我在 Windows 10 pro 64bit 上并且系统上安装了 Python 3.7.6。

0 投票
1 回答
3220 浏览

docker - Poetry 无法在 Docker 中安装

我有alpine:edge作为基础图像,并想在其中使用诗歌。我正在尝试这样安装它:

脚本可以正常工作,但是当我尝试实际使用它时,bash 说它没有安装:

什么会导致这个问题?

UPD:看起来 env 文件有问题:

我尝试手动将二进制文件添加到路径中,但正在运行

似乎没有效果。当我进入容器时,路径似乎没有改变。

0 投票
0 回答
414 浏览

python - 诗歌尝试将项目文件夹安装为依赖项:EnvCommandError

我正在尝试运行poetry install命令,但出现以下错误:

我的项目目录包含.toml文件被标记为<PROJECT_FOLDER>(PROJECT_FOLDER_PATH相应地,它是完整路径),它包含<subfolder>.

我的toml文件的一部分:

似乎诗歌试图将项目本身安装为依赖项,但由于某种我不明白的原因,它似乎是冲突的 Python 版本。我通过设置暂时解决了它python = "^3.6",但现在问题又回来了,因为我需要一些只接受的包python = "^3.7"

0 投票
3 回答
3344 浏览

python - 使用 tox 运行脚本时诗歌依赖项不可用

我有一个使用诗歌和毒物的 python 项目。它有源代码、测试和脚本(juptext 笔记本)。我无法在脚本中导入开发依赖项,但可以在测试中导入。

当我遇到这个问题时,我创建了以下最小示例。起初,它不起作用,然后我摆弄它,现在它起作用了。所以我剥离了有实际问题的项目,所以除了项目名称、位置、虚拟环境和 .git 目录之外,它无法区分,但这仍然不起作用。

更新删除所有构建工件和最小示例的 virtualenv 使其再次停止工作

更新将行添加到 tox 命令scripts: poetry install修复了最小示例

源代码、测试和脚本在以下布局中

这些文件要么是空的,要么如下:

foo_script.py

test_foo.py

pyproject.toml

毒物

当我运行毒药时,我得到

0 投票
2 回答
1269 浏览

python - 如何使诗歌网站包在 VSCode 上可搜索?

VSCode 默认支持许多虚拟环境,并且这些环境的文件是可搜索的。但是,我正在使用Poetry,它的库似乎没有出现在搜索中。

.vscode/settings.json我通过更改我的项目目录来手动设置我的 Python 解释器。(因为命令调色板Python: Select interpreter也不起作用。

我想~\AppData\Local\pypoetry\Cache\virtualenvs\finance-essentials-37-64-58e2e1Bc-py3.7\Lib\site-packages在我的命令 pelette 和代码上下文中使文件可搜索,以便我可以轻松查找库源。

我该怎么做呢?

0 投票
1 回答
2835 浏览

python - 如何通过诗歌构建 C 扩展?

要构建一个由我管理的 python 项目,poetry我需要先构建 C 扩展(相当于python setup.py build)。poetry能够根据这个github问题做到这一点。但对我来说,不清楚在pyproject.toml构建时执行 C 扩展构建时要包含什么内容poetry build

0 投票
1 回答
777 浏览

python - 用诗歌在不同平台上安装不同版本的包

在我的项目中,我需要同时支持 Linux 和 Windows,因此我遵循了这些准则并将这些行添加到我的pyproject.toml文件中:

(另外我尝试过os_name=='nt')但是当我尝试运行时poetry update,我收到以下错误:

使用 Poetry 在不同平台上安装同一软件包的不同版本的正确方法是什么?

0 投票
1 回答
2002 浏览

python - Python / pip 如何处理冲突的传递依赖?

假设我想安装a需要包b1b2. 反过来,b1requiresc > 1.0.0b2requires c < 1.0.0。因此,同一个包不能同时满足b1和的要求。b2

原则上/其他编程语言,这不是问题。c可以并排安装两个版本,并确保b1使用另一个版本而不是b2.

但是,我不确定 pip 是否可以安装同一软件包的两个版本。我的第一个问题是: pip 可以安装一个包的两个版本吗?

我的主要问题是如何实际处理这个问题。我现在能想象的唯一方法是

  1. fork b1(or b2) 和一个c适用于 fork 的版本,然后上传b1_forkedc_for_b1_forkedPyPI,或者
  2. b1将(或)的代码b2直接包含在我的项目中

两者似乎都比必要的更成问题。

我试过的

所以我很确定这是 Python 查找已安装包的地方,并且只安装了一个版本(尽管*-dist-info目录让我有点困惑)。

这篇博文表明,目前对于冲突的传递依赖没有好的解决方案。其他项目(例如诗歌)对此有帮助吗?