标签: python-poetry

诗歌将python版本更改为3.x

根据诗歌的 docs,设置新项目的正确方法是 with poetry new poetry-demo,但是这会通过创建以下 toml 文件创建基于现已弃用的 python2.7 的项目:

[tool.poetry]
name = "poetry-demo"
version = "0.1.0"
description = ""
authors = ["Harsha Goli <harshagoli@gmail.com>"]

[tool.poetry.dependencies]
python = "^2.7"

[tool.poetry.dev-dependencies]
pytest = "^4.6"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"
Run Code Online (Sandbox Code Playgroud)

如何将其更新到 3.7?简单地更改python = "^2.7"python = "^3.7"poetry install运行时会导致以下错误:

[SolverProblemError]
The current project's Python requirement (2.7.17) is not compatible with some of the required packages Python requirement:
  - zipp requires Python >=3.6

Because …
Run Code Online (Sandbox Code Playgroud)

python python-poetry

22
推荐指数
7
解决办法
3万
查看次数

诗歌:解锁收藏失败

在新的诗歌安装中,我在尝试安装任何内容时收到以下错误:

\n
(base) \xe2\x9e\x9c  celeba poetry add numpy       \nFailed to unlock the collection!\n
Run Code Online (Sandbox Code Playgroud)\n

我怎样才能解决这个问题?

\n

python python-poetry

22
推荐指数
1
解决办法
2万
查看次数

pyproject.toml 中的 [tool.poetry] 和 [project] 表有什么区别?

语境

因此,我尝试按照本教程创建一个新的 Python 包:https://packaging.python.org/en/latest/tutorials/packaging-projects/

正如教程所说,在我的pyproject.tomlI 中应该具有以下结构:

[project]
name = "example_package_YOUR_USERNAME_HERE"
version = "0.0.1"
authors = [
  { name="Example Author", email="author@example.com" },
]
description = "A small example package"
Run Code Online (Sandbox Code Playgroud)

但是当我用 创建这个文件时poetry init,它创建了这个结构:

[tool.poetry]
name = "example_package_YOUR_USERNAME_HERE"
version = "0.0.1"
authors = [
  { name="Example Author", email="author@example.com" },
]
description = "A small example package"
Run Code Online (Sandbox Code Playgroud)

两者之间的主要区别在于[project]代替[tool.poetry]节标题。我还看到,poetry当没有[tool.poetry]部分时,这对项目没有任何作用pyproject.toml


所以我的问题是:

  1. 这两者有什么区别?

  2. 我的 中应该只有一个还是同时有两个pyproject.toml?如果我应该保留两者,它应该包含什么?

  3. 如果应该只有[tool.poetry],我是否需要遵循与 相同的内容和子部分规则[project]?例如, …

setuptools pypi python-packaging python-poetry pyproject.toml

22
推荐指数
1
解决办法
7091
查看次数

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

  1. 我正在使用诗歌来创建 .whl 文件。
  2. 我有一个在远程主机上运行的 ftp 服务器。
  3. 我编写了一个 python 脚本 ( log_revision.py),它在数据库中保存了 git 提交、更多参数,最后将 .whl(创建的诗歌)发送到远程服务器(每个 .whl 在服务器中的不同路径中,路径保存在数据库中)。

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

我试过

[tool.poetry.scripts]
my-script = "my_package_name:log_revision.py
Run Code Online (Sandbox Code Playgroud)

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

1.有人可以帮我理解如何运行许愿表吗?

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

[RuntimeError]                                 
Repository http://192.168.1.xxx/home/whl is not defined  
Run Code Online (Sandbox Code Playgroud)

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

会appricate任何帮助,谢谢!

python python-poetry

21
推荐指数
4
解决办法
2万
查看次数

诗歌删除无法删除任何包?

诗歌安装:

\n
(installs dependencies)\n
Run Code Online (Sandbox Code Playgroud)\n
poetry show --tree\n\nblack 20.8b1 The uncompromising code formatter.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 appdirs *\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 click >=7.1.2\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 mypy-extensions >=0.4.3\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pathspec >=0.6,<1\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 regex >=2020.1.8\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 toml >=0.10.1\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 typed-ast >=1.4.0\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 typing-extensions >=3.7.4\n
Run Code Online (Sandbox Code Playgroud)\n

接下来,诗歌删除...

\n
poetry remove black\n\n\n  ValueError\n\n  Package black not found\n\n  at ~/proj/venv/lib/python3.9/site-packages/poetry/console/commands/remove.py:52 in handle\n      48\xe2\x94\x82                     requirements[key] = poetry_content[section][key]\n      49\xe2\x94\x82                     break\n      50\xe2\x94\x82\n      51\xe2\x94\x82             if not found:\n    \xe2\x86\x92 52\xe2\x94\x82                 raise ValueError("Package {} not found".format(name))\n      53\xe2\x94\x82\n      54\xe2\x94\x82         for key in requirements:\n      55\xe2\x94\x82             del poetry_content[section][key]\n      56\xe2\x94\x82\n
Run Code Online (Sandbox Code Playgroud)\n

对我来说,缺乏关于这个主题的搜索线程表明,一些应该“正常工作”的东西正在失败。

\n

有任何想法吗?

\n

python python-3.x python-poetry

21
推荐指数
1
解决办法
5万
查看次数

使用诗歌安装的虚拟环境在哪里定位?哪里可以找到诗歌安装虚拟环境

我使用以下命令安装了诗歌:-
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -
要了解更多信息,请参阅

现在我想创建一个虚拟环境,我使用以下命令创建了它:-
poetry config virtualenvs.in-project true
要了解更多信息,请参阅

但是执行此操作后,我看不到任何 .venv(虚拟环境)文件夹。

要检查虚拟环境是否存在,我们使用以下命令:-
poetry config virtualenvs.in-project
如果上面的命令返回true,则意味着您已经拥有它。

我得到了,还有文档true中提到的位置,我在那里看不到它。

谁能告诉我现在如何定位虚拟环境?

python virtualenv python-3.x python-poetry

21
推荐指数
1
解决办法
3万
查看次数

Python Poetry 的依赖版本语法

的项目是一个用于Python的依赖关系管理系统。它使用新的pyproject.toml文件作为其配置文件。

Poetry 工具支持几种不同的方式来指定允许的依赖项版本。Poetry 依赖项的版本说明符的语法是什么?

python python-poetry

20
推荐指数
1
解决办法
7577
查看次数

诗歌安装| SolverProblemError 因为 my_project 依赖于与任何版本都不匹配的字符串 (*),所以版本求解失败

我还没有使用诗歌来运行项目,所以请原谅缺乏理解。

\n

我成功安装了诗歌Python库管理器,使用:

\n
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3\n
Run Code Online (Sandbox Code Playgroud)\n

下一步poetry install最初返回此错误:

\n
me@LAPTOP-G1DAPU88:~/.ssh/workers-python/workers$ poetry install\n\n  RuntimeError\n\n  Poetry could not find a pyproject.toml file in /home/me/.ssh/workers-python/workers or its parents\n\n  at ~/.poetry/lib/poetry/_vendor/py3.8/poetry/core/factory.py:369 in locate\n      365\xe2\x94\x82             if poetry_file.exists():\n      366\xe2\x94\x82                 return poetry_file\n      367\xe2\x94\x82\n      368\xe2\x94\x82         else:\n    \xe2\x86\x92 369\xe2\x94\x82             raise RuntimeError(\n      370\xe2\x94\x82                 "Poetry could not find a pyproject.toml file in {} or its parents".format(\n      371\xe2\x94\x82                     cwd\n      372\xe2\x94\x82                 )\n      373\xe2\x94\x82             )\n
Run Code Online (Sandbox Code Playgroud)\n

我很快意识到我需要自己制作的pyproject.toml文件。poetry install再次运行得到:

\n
$ poetry install\n\n  TOMLError\n\n  Invalid …
Run Code Online (Sandbox Code Playgroud)

solver toml python-poetry

20
推荐指数
2
解决办法
5万
查看次数

诗歌失败,并显示“检索到的包摘要不在诗歌中。锁定元数据”

我们正在尝试合并项目中的旧分支,当尝试构建 docker 映像时,诗歌似乎由于某种我不明白的原因而失败。

\n

我对诗歌不太熟悉,因为到目前为止我只使用requirements.txt作为依赖项,所以我对正在发生的事情有点摸索。

\n

我收到的错误(在服务器上构建图像的剧本的一部分)是这样的:

\n
       "Installing dependencies from lock file",\n        "",\n        "Package operations: 16 installs, 14 updates, 0 removals",\n        "",\n        "  \xe2\x80\xa2 Updating importlib-metadata (4.8.3 -> 2.0.0)",\n        "  \xe2\x80\xa2 Updating pyparsing (3.0.6 -> 2.4.7)",\n        "  \xe2\x80\xa2 Updating six (1.16.0 -> 1.15.0)",\n        "",\n        "  RuntimeError",\n        "",\n        "  Retrieved digest for link six-1.15.0.tar.gz(sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259) not in poetry.lock metadata ['30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259', '8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced']",\n        "",\n        "  at /usr/local/lib/python3.7/dist-packages/poetry/installation/chooser.py:115 in _get_links",\n        "      111\xe2\x94\x82 ",\n        "      112\xe2\x94\x82         if links and not selected_links:",\n        "      113\xe2\x94\x82             raise RuntimeError(",\n …
Run Code Online (Sandbox Code Playgroud)

python python-poetry

19
推荐指数
4
解决办法
2万
查看次数

即使存在,诗歌也找不到依赖的版本

当我在诗歌中将 python 版本从 3.7 升级到 3.8 时,重新安装所有依赖项都会失败,版本如下:

ERROR: No matching distribution found for...
Run Code Online (Sandbox Code Playgroud)

该版本的发行版可在 pypa 上找到,并且通常是最新版本。

简单地删除有问题的包并不能解决问题,因为其他包可能会导致诗歌失败。经过一番调查,似乎诗歌没有使用 pip3 在下面安装,而是使用 pip2.7。

事实上,这是由弃用警报支持的,并且如果我尝试使用 pip (全局或其他方式)而不是 pip3 安装相同版本,则该错误总是可重现的。

这个问题令人沮丧,单独删除 venv 似乎没有帮助。我怎样才能解决这个本来就不应该存在的依赖问题?

python python-3.x python-poetry

18
推荐指数
1
解决办法
2万
查看次数