标签: python-poetry

AttributeError:模块“pypandoc”没有属性“convert”

我正在尝试将 python 项目切换到诗歌和 pyproject.toml。以前,我们使用requirements.txt。

然而,当我尝试使用pyspark 2.4.8诗歌安装时,遇到了以下错误:

File "<string>", line 156, in <module>
AttributeError: module 'pypandoc' has no attribute 'convert'
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
Run Code Online (Sandbox Code Playgroud)

有人遇到过这个吗?你知道为什么这是诗歌的问题而不是文学的问题吗requirements.txt

pyspark pypandoc python-poetry

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

使用 pip 安装 pyproject.toml 依赖项时出现问题

我有一个用诗歌创作的旧项目。诗歌创建的pyproject.toml如下:

\n
[tool.poetry]\nname = "Dota2Learning"\nversion = "0.3.0"\ndescription = "Statistics and Machine Learning for your Dota2 Games."\nlicense = "MIT"\nreadme = "README.md"\nhomepage = "Coming soon..."\nrepository = "https://github.com/drigols/dota2learning/"\ndocumentation = "Coming soon..."\ninclude = ["CHANGELOG.md"]\nauthors = [\n    "drigols <drigols.creative@gmail.com>",\n]\nmaintainers = [\n    "drigols <drigols.creative@gmail.com>",\n]\nkeywords = [\n    "dota2",\n    "statistics",\n    "machine Learning",\n    "deep learning",\n]\n\n[tool.poetry.scripts]\ndota2learning = "dota2learning.cli.main:app"\n\n[tool.poetry.dependencies]\npython = "^3.10"\nrequests = "^2.27.1"\ntyper = {extras = ["all"], version = "^0.4.1"}\ninstall = "^1.3.5"\nSQLAlchemy = "^1.4.39"\nPyMySQL = "^1.0.2"\ncryptography = "^37.0.4"\npydantic = "^1.9.1"\nrich = "^12.5.1"\nfastapi = "^0.79.0"\nuvicorn = "^0.18.2"\n\n[tool.poetry.dev-dependencies]\nblack = {extras = …
Run Code Online (Sandbox Code Playgroud)

python pip python-packaging python-poetry pyproject.toml

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

如何跳过诗歌中的证书验证?

我正在尝试使用添加新包poetry add,但它总是出现此错误:

HTTPSConnectionPool(host='10.140.240.64', port=443): Max retries exceeded with url: /api/v4/projects/118/packages/pypi/files/47f05b39ebe470235b70724fb049985ea75fad6c1a5007ad3462f3d430da338b/tg_client-0.1.10-py3-none-any.whl (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1129)')))

谁知道如何跳过这个验证?

更新:

我尝试从私有存储库添加包:

[[tool.poetry.source]]
name = "my_package"
url = "https://..."
secondary = true
Run Code Online (Sandbox Code Playgroud)

也许这就是解决方案poetry config certificates.my_package.cert false不起作用的原因。

python ssl python-poetry

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

如何保持诗歌和承诺版本同步?

我有一个pyproject.toml

[tool.poetry]
name = "my-project"
version = "0.1.0"

[tool.commitizen]
name = "cz_conventional_commits"
version = "0.1.0"
Run Code Online (Sandbox Code Playgroud)

我添加了一个新功能并使用提交消息进行提交

feat: add parameter for new feature
Run Code Online (Sandbox Code Playgroud)

这是一次承诺。

然后我打电话

commitizen bump
Run Code Online (Sandbox Code Playgroud)

Commitizen 将识别次要版本的增加,更新 my pyproject.toml,并使用更新pyproject.toml的标签再次提交0.2.0

这是第二次提交。

但现在我的pyproject.toml“不正常”(假设我希望我的构建版本与我的 git 标签同步)。

[tool.poetry]
name = "my-project"
version = "0.1.0"

[tool.commitizen]
name = "cz_conventional_commits"
version = "0.2.0"
Run Code Online (Sandbox Code Playgroud)

我已经提交了两项,一项被标记了,但事情仍然不太正确。是否有工作流程可以让一切保持一致?

python commitizen python-poetry

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

如何在 Google Colab 中使用诗歌?

语境

我目前正在开展一个团队项目,我们需要训练神经网络。一些成员在本地计算机上工作,一些成员在 Colab 上工作(用于 GPU 使用)。我们需要具有相同的依赖关系。我已经熟悉在本地计算机上使用诗歌,但不熟悉 Colab,我想知道如何在 Colab 中使用它。

所以我做了一些测试,也遇到了一些问题。也许我可以在这里找到一些答案。先感谢您!

问题

第一个问题poetry add <package>不更新pyproject.toml

我想添加一个新包,假设是 torch. 根据诗歌的文档,要安装新包,我们需要运行poetry add <package>. 由于我第一次运行此命令,因此创建了一个虚拟环境以及诗歌.lock。但没有安装任何软件包。此外,诗歌.lock文件被更新,但pyproject.toml没有更新。这种情况只发生在 Colab 上。我在本地计算机上尝试过,该命令确实也会自动更新pyproject.toml文件。

第二个问题poetry run pip install <package>不更新 pyproject.toml

相反,我们可以使用诗歌运行来安装该包pip install <package>。我在以下GitHub gist上看到了这个命令。这些软件包现已安装在虚拟环境中,但 pyproject.toml尚未更新。

这是我用于这些测试的Colab 笔记本的链接。

再次感谢你!

python google-colaboratory python-poetry

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

使用 setuptools 和存根文件打包 C++ 扩展

所以我有以下文件结构:

\n
project/\n\xe2\x94\x9c\xe2\x94\x80 cpp_src/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 src/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 cpp source files\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 test/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 cpp test files\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 stub.pyi\n\xe2\x94\x9c\xe2\x94\x80 python_src/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80 build.py\n
Run Code Online (Sandbox Code Playgroud)\n

在我的build.py文件中,我使用 setuptools 使用cpp_src自定义build_ext命令来编译和打包 C++ 扩展。但是,我似乎无法让它包含存根文件stub.pyi。如何修改 setuptools 命令来执行此操作?我不太关心文件结构,所以如果setup.py中需要另一个文件cpp_src,那很好。

\n

如果有帮助的话,我还使用 Poetry 来管理虚拟环境。此外,如果有另一个构建系统可以使这变得更容易,我很乐意使用它。

\n

谢谢。

\n

编辑:这是该文件的简化版本build.py(完整存储库位于https://github.com/Aspect1103/Hades/tree/ Generation- rust ):

\n
project/\n\xe2\x94\x9c\xe2\x94\x80 cpp_src/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 src/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 cpp source files\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 test/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 cpp test files\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 …
Run Code Online (Sandbox Code Playgroud)

c++ python setuptools python-packaging python-poetry

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

如何在 Poetry 托管环境中下载 spaCy 模型

我正在编写一个 Python Jupyter 笔记本,它对意大利语文本进行一些 NLP 处理。

我已经通过 Poetry 安装了 spaCy 3.5.3,然后尝试运行以下代码:

import spacy
load_model = spacy.load('it_core_news_sm')
Run Code Online (Sandbox Code Playgroud)

import行按预期工作,但运行spacy.load会产生以下错误:

OSError:[E050]找不到模型“it_core_news_sm”。它似乎不是 Python 包或数据目录的有效路径。模型名称正确,如https://spacy.io/models/it所示

经过网络搜索,我发现解决方案是发出以下命令:

python3 -m spacy download it_core_news_sm
Run Code Online (Sandbox Code Playgroud)

运行此命令后,上面的代码按预期工作,但是,是否有更“犹太”的方式通过 Poetry 来执行此操作?

python nlp spacy virtual-environment python-poetry

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

使用不同的包源进行开发与使用 Poetry 进行部署

使用 Poetry 时,在本地开发时允许使用本地可编辑版本的包,以及在部署时在存储库中使用已发布版本的包的最佳实践是什么?

我正在开发一个项目,该项目使用自行开发的Python包和诗歌进行依赖管理。在本地开发时,我想使用带有该标志安装的本地版本的软件包,--editable以便我可以轻松进行更改。但是,当我部署项目时,我想从私人管理的存储库安装该包。

目前,我似乎可以选择其中之一。我设置了两个可选的依赖项组,privatelocal-private,并包含了私人存储库的补充源。我的pyproject.toml看起来像这样:

[tool.poetry.group.local-private]
optional = true

[tool.poetry.group.local-private.dependencies]
my-package = {path = "../my-package"}


[tool.poetry.group.private]
optional = true

[tool.poetry.group.private.dependencies]
my-package = {version = "^0.2.0", source = "private_repo"}


[[tool.poetry.source]]
name = "private_repo"
url = "https://myprivaterepo.com"
priority = "supplemental"


[[tool.poetry.source]]
name = "PyPI"
priority = "primary"
Run Code Online (Sandbox Code Playgroud)

然而,似乎因为这些包共享相同的名称,所以它们在poetry.lock文件中获得一个条目。因此,当我安装任一组时,my-package两者都是从同一源拉取的。

我知道诗歌可以解决所有依赖关系,无论它们是否属于可选组。但是有没有办法为一个包指定两个不同的源,或者我的做法完全错误吗?

编辑/解决方法: 解决方法,这并不是一个真正正确的解决方法,我最终得到的是使用 pip 单独安装本地包。所以我的pyproject.toml文件看起来像这样:

[tool.poetry.group.private]
optional = true

[tool.poetry.group.private.dependencies]
my-package = {version = "^0.2.0", source = "private_repo"}


[[tool.poetry.source]]
name …
Run Code Online (Sandbox Code Playgroud)

python-poetry

5
推荐指数
0
解决办法
452
查看次数

运行“poetry run”命令时出现 PermissionError

环境

  • Ubuntu 20.04
  • 蟒蛇 3.7.3
  • 诗歌 1.0.8

我的问题

我安装了诗歌来管理包,并通过以下简单项目进行了尝试,

.
??? myproject
    ??? README.rst
    ??? myproject
    ?   ??? __init__.py
    ?   ??? main.py
    ??? myproject.egg-info
    ?   ??? PKG-INFO
    ?   ??? SOURCES.txt
    ?   ??? dependency_links.txt
    ?   ??? requires.txt
    ?   ??? top_level.txt
    ??? poetry.lock
    ??? pyproject.toml
    ??? tests
        ??? __init__.py
        ??? test_myproject.py

Run Code Online (Sandbox Code Playgroud)

运行main.py我试过

$ poetry run myproject/main.py
Run Code Online (Sandbox Code Playgroud)

但我有一个错误,它说,

[PermissionError]
[Errno 13] Permission denied
Run Code Online (Sandbox Code Playgroud)

我试过的

为了运行我的代码,我尝试了另一种方式。

$ poetry shell
(myproject-x8XipcUE-py3.7)$ python myproject/main.py
Run Code Online (Sandbox Code Playgroud)

我没有错误...

我的poetry run命令有什么问题?

python python-poetry

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

如何使用 Poetry 将 Python 包发布到 CodeArtifact?

尝试将 Poetry 包发布到 AWS CodeArtifact。它支持pipwhich 应该表明它也支持poetry,因为poetry可以上传到 PyPi 服务器。

我已经像这样配置了域:

export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain XXXX --domain-owner XXXXXXXXXXXX --query authorizationToken --output text`
poetry config repositories.the_aws_repo https://aws:$CODEARTIFACT_AUTH_TOKEN@XXXX-XXXXXXXXXXXX.d.codeartifact.eu-central-1.amazonaws.com/pypi/XXXX/simple/
poetry config pypi-token.the_aws_repo $CODEARTIFACT_AUTH_TOKEN
Run Code Online (Sandbox Code Playgroud)

但是我在尝试发布包时收到 404:

? poetry publish --repository the_aws_repo -vvv

No suitable keyring backend found
No suitable keyring backends were found
Using a plaintext file to store and retrieve credentials
Publishing xxx (0.1.5) to the_aws_repo
 - Uploading xxx-0.1.5-py3-none-any.whl 100%

  Stack trace:

  7  ~/.poetry/lib/poetry/_vendor/py3.8/clikit/console_application.py:131 in run
      129?             parsed_args …
Run Code Online (Sandbox Code Playgroud)

python pip amazon-web-services python-poetry aws-codeartifact

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