根据诗歌的 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) 在新的诗歌安装中,我在尝试安装任何内容时收到以下错误:
\n(base) \xe2\x9e\x9c celeba poetry add numpy \nFailed to unlock the collection!\nRun Code Online (Sandbox Code Playgroud)\n我怎样才能解决这个问题?
\n因此,我尝试按照本教程创建一个新的 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
这两者有什么区别?
我的 中应该只有一个还是同时有两个pyproject.toml?如果我应该保留两者,它应该包含什么?
如果应该只有[tool.poetry],我是否需要遵循与 相同的内容和子部分规则[project]?例如, …
setuptools pypi python-packaging python-poetry pyproject.toml
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任何帮助,谢谢!
诗歌安装:
\n(installs dependencies)\nRun Code Online (Sandbox Code Playgroud)\npoetry 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\nRun Code Online (Sandbox Code Playgroud)\n接下来,诗歌删除...
\npoetry 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\nRun Code Online (Sandbox Code Playgroud)\n对我来说,缺乏关于这个主题的搜索线程表明,一些应该“正常工作”的东西正在失败。
\n有任何想法吗?
\n我使用以下命令安装了诗歌:-
(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的依赖关系管理系统。它使用新的pyproject.toml文件作为其配置文件。
Poetry 工具支持几种不同的方式来指定允许的依赖项版本。Poetry 依赖项的版本说明符的语法是什么?
我还没有使用诗歌来运行项目,所以请原谅缺乏理解。
\n我成功安装了诗歌Python库管理器,使用:
\ncurl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3\nRun Code Online (Sandbox Code Playgroud)\n下一步poetry install最初返回此错误:
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 )\nRun Code Online (Sandbox Code Playgroud)\n我很快意识到我需要自己制作的pyproject.toml文件。poetry install再次运行得到:
$ poetry install\n\n TOMLError\n\n Invalid …Run Code Online (Sandbox Code Playgroud) 我们正在尝试合并项目中的旧分支,当尝试构建 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 版本从 3.7 升级到 3.8 时,重新安装所有依赖项都会失败,版本如下:
ERROR: No matching distribution found for...
Run Code Online (Sandbox Code Playgroud)
该版本的发行版可在 pypa 上找到,并且通常是最新版本。
简单地删除有问题的包并不能解决问题,因为其他包可能会导致诗歌失败。经过一番调查,似乎诗歌没有使用 pip3 在下面安装,而是使用 pip2.7。
事实上,这是由弃用警报支持的,并且如果我尝试使用 pip (全局或其他方式)而不是 pip3 安装相同版本,则该错误总是可重现的。
这个问题令人沮丧,单独删除 venv 似乎没有帮助。我怎样才能解决这个本来就不应该存在的依赖问题?
python-poetry ×10
python ×8
python-3.x ×3
pypi ×1
setuptools ×1
solver ×1
toml ×1
virtualenv ×1