标签: python-poetry

从 python 代码中的 pyproject.toml 获取应用程序版本

我对 python 不太熟悉,我只用它做过自动化,所以我对包和其他东西都是新手。
\n我正在使用 Flask、Gunicorn 和 Poetry 创建一个 API。
\n我注意到 pyproject.toml 中有一个版本号,我想创建一个路由 /version 来返回我的应用程序的版本。
\n我的应用程序结构如下所示:

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 poetry.lock\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tests\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 wsgi.py\n
Run Code Online (Sandbox Code Playgroud)\n

wsgi.py运行应用程序的主文件在哪里。

\n

我看到人们使用 importlib 但我没有找到如何让它工作,因为它与以下命令一起使用:
\n __version__ = importlib.metadata.version("__package__")
\n但我不知道这个的含义。

\n

python python-importlib python-packaging python-poetry

4
推荐指数
1
解决办法
4456
查看次数

当我更改诗歌 pyproject.toml 时该怎么办?

我有一个pyproject.toml并且我已经做了poetry init(显然)并且poetry install.

如果我手动更改 toml 文件,我到底需要做什么?

一方面,我认为我必须同步poetry.lock文件,但我是否要删除它并再次安装?对于编辑 toml 文件后如何继续,我有相互矛盾的想法。

poetry add另外,如果我执行 a而不是手动编辑 toml,过程是否相同?

python-poetry

4
推荐指数
1
解决办法
6452
查看次数

如何使 Poetry 站点包可在 VSCode 上搜索?

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

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

{
    "python.pythonPath": "~\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\finance-essentials-37-64-58e2e1Bc-py3.7\\Scripts"
}
Run Code Online (Sandbox Code Playgroud)

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

我该怎么做呢?

python visual-studio-code python-poetry

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

诗歌忽略pyproject.toml中的依赖

我目前有一个 Python3 项目,设置了 Poetry 作为主要的包管理器。除此之外,我还通过 Github 工作流设置了构建和一些自动化测试。我的包依赖于 Tensorflow,尽管自动化测试可以在没有它的情况下运行。不幸的是,每次 Github 工作流运行这些测试时都会安装 Tensorflow(相当大)。由于这些测试不需要 Tensorflow 并且我想加快构建速度,因此我想在以下情况下忽略 Tensorflow 依赖项poetry install从构建管道调用。

有人知道在使用 Poetry 时排除依赖项的方法吗?

python python-poetry

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

如何让 Flask 包教程与 Poetry 一起使用?

我正在使用 Poetry 来管理我的 Python 项目(依赖项、包等),并且我正在尝试从 Flask 文档实现四行 hello world:https: //flask.palletsprojects.com/en/1.1.x/模式/包/#simple-packages

我的文件夹结构如下所示:

myproject/
  .venv/
  myproject/
    __init__.py
    views.py
  poetry.lock
  pyproject.toml
  README.rst
Run Code Online (Sandbox Code Playgroud)

这两个文件,init.py

import myproject.views
__version__ = '0.1.0'

from flask import Flask
app = Flask(__name__)
Run Code Online (Sandbox Code Playgroud)

和views.py:

from myproject import app

@app.route('/')
def index():
    return 'hello world'
Run Code Online (Sandbox Code Playgroud)

然而,当我运行 export FLASK_APP=myproject 和 FLASK_ENV=development 并执行flask run并将我的浏览器指向端口时,它说

flask.cli.NoAppException
flask.cli.NoAppException: While importing "myproject", an ImportError was raised:

Traceback (most recent call last):
  File "/myproject/.venv/lib/python3.9/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/myproject/myproject/__init__.py", line 1, in …
Run Code Online (Sandbox Code Playgroud)

python flask python-poetry

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

全球安装 Poetry 项目的标准方法

我经常想使用我自己的个人Python项目来进行日常使用。在 golang 中,我可以运行go install project.go并将编译后的二进制文件发送到~/go/bin(位于我的 PATH 中)。现在我可以在系统中的全球任何地方运行我的程序。Python 和 Poetry 中有对应的吗?

我可能可以通过编写一个脚本来解决这个问题,该脚本运行一些东西poetry run $project并将该脚本放入我的路径之一。但我想知道的是,Python 和 Poetry 中是否有一种标准方法可以做到这一点。

pip install program我想要的是类似于我自己的项目的东西。

现在,我每次想运行程序时都需要cd进入我的项目文件夹并运行,这确实很麻烦。poetry run $project

python python-poetry

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

在 Windows 上,为什么“poetry shell”会删除/丢失 shell 历史记录功能?

在 Windows 默认命令 shell (cmd.exe) 中,您可以使用各种控件访问键入命令的历史记录(向上箭头表示最近的命令等)。

当您使用“poetry shell”命令生成一个新的虚拟环境时,您会生成一个新的 shell,但历史命令(如向上箭头和 F7)不起作用,如果您运行 doskey /history,它会为您提供命令历史记录从运行“poetry shell”命令之前开始。

如果您运行 cmd.exe 来生成另一个 shell,这也会禁用历史记录。

关于为什么会发生这种情况或者如何获得禁用历史记录的命令 shell 有什么想法吗?

谢谢

windows shell python-poetry

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

在诗歌项目上安装 GDAL

我在 Poetry 管理的虚拟环境中安装 GDAL 时遇到问题(在 Ubuntu 18.04 发行版上工作)。

我已经发现的是:

  • 这个问题在诗歌 github 的 repo 上;最后提到的拉取请求现在似乎被卡住了;
  • SO 上一个未解答的问题与诗歌上的 gdal 版本配置相关。

对于“标准”安装,有一些使用“导出”命令处理本地路径的示例。

到目前为止,我还没有找到任何关于如何在诗歌项目中安装 GDAL 的有效示例。

有人知道如何处理这个问题吗?(或者这是否可能?)

python gdal python-poetry

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

诗歌:如何从 git 子目录安装?

我想安装feastpython 包poetry

\n

pip3 install git+https://github.com/feast-dev/feast#subdirectory=sdk/python工作正常,

\n

poetry add git+https://github.com/feast-dev/feast#subdirectory=sdk/python给出了一个错误:

\n
  CalledProcessError\n\n  Command '['git', '--git-dir', '/tmp/pypoetry-git-feas51ct2_me/.git', '--work-tree', '/tmp/pypoetry-git-feas51ct2_me', 'checkout', 'subdirectory=sdk/python']' returned non-zero exit status 1.\n\n  at /usr/lib/python3.8/subprocess.py:516 in run\n       512\xe2\x94\x82             # We don't call process.wait() as .__exit__ does that for us.\n       513\xe2\x94\x82             raise\n       514\xe2\x94\x82         retcode = process.poll()\n       515\xe2\x94\x82         if check and retcode:\n    \xe2\x86\x92  516\xe2\x94\x82             raise CalledProcessError(retcode, process.args,\n       517\xe2\x94\x82                                      output=stdout, stderr=stderr)\n       518\xe2\x94\x82     return CompletedProcess(process.args, retcode, stdout, stderr)\n       519\xe2\x94\x82 \n       520\xe2\x94\x82 \n
Run Code Online (Sandbox Code Playgroud)\n

我该如何修复它?

\n

python pip python-poetry

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

将 pex 与诗歌一起使用 pyproject.toml

我正在尝试弄清楚如何使用 pex 对 python 项目进行自动化(ish)部署。我目前有以下流程:

$ poetry run pip freeze > requirements.txt 
manually remove this-project line from requirements.txt
$ poetry run pex -r requirements.txt -o service.pex -e api:start --sources-directory=.
$ ./service.pex
Run Code Online (Sandbox Code Playgroud)

第二步的原因是,this-project如果我将该行留在其中,pex 将尝试在线查找。我理解这一点,但pip freeze确实将该行插入到requirements.txt. 我想知道的是:pex可以使用pyproject.toml还是poetry.lock直接使用?当前的解决方案是一种烦人的解决方案。

我看过2019 年教程,但它不起作用,因为当前版本的 pex 无法识别--project为选项。

任何其他建议将不胜感激。

deployment python-pex python-poetry

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