标签: python-poetry

与 Poetry 一起安装的软件包无法导入

有一个简单但令人困惑的问题:当我尝试在模块中使用我用诗歌添加的包时,它无法导入。采取的步骤:

  1. poetry add sendgrid
  2. 在一个模块中,import sendgrid
  3. 错误: Import "sendgrid" could not be resolved PylancereportMissingImports

我尝试过的故障排除:

  • 我检查了我的项目的诗歌 venv 目录,sendgrid 就在那里:'C:\\Users\\xyz123\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\nameofproject-py3.10\\lib\\site-packages'
  • 还检查了 sys.path(); 列出了该站点包目录的路径
  • 跑步poetry install给了我回应No dependencies to install or update
  • pyproject.toml 和诗歌.lock 文件都列出了 sendgrid

到底是怎么回事?

python python-poetry

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

无法使用诗歌在 M1 mac 上安装 Gevent

我尝试使用诗歌为虚拟环境安装许多依赖项。当它到达时,gevent (20.9.0)它会得到以下内容

import error:

ImportError: dlopen(/private/var/folders/21/wxg5bdsj1w3f3j_9sl_pktbw0000gn/T/pip-build-env-50mwte36/overlay/lib/python3.8/site-packages/_cffi_backend.cpython-38-darwin.so,
0x0002): tried:
'/private/var/folders/21/wxg5bdsj1w3f3j_9sl_pktbw0000gn/T/pip-build-env-50mwte36/overlay/lib/python3.8/site-packages/_cffi_backend.cpython-38-darwin.so'
(mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/_cffi_backend.cpython-38-darwin.so' (no such file), '/usr/lib/_cffi_backend.cpython-38-darwin.so' (no such file)
Run Code Online (Sandbox Code Playgroud)

我尝试使用 pip3 代替,但仍然遇到同样的问题。

python gevent python-poetry apple-m1

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

如何使用 pyproject.toml 和诗歌从单个 python 模块构建多个包?

我想实现与 Dask 库类似的行为,可以使用pip来安装daskdask[dataframe]dask[array]其他库。他们通过使用像这样的setup.py包密钥来做到这一点。如果我只安装,则不会安装,并且它们会在执行模块时警告您。daskdask[dataframe]

我在诗歌文档中找到了这一点poetry build,但是当我执行时,我只得到一个.whl包含所有包的文件。

如何打包我的模块以便能够使用安装库的特定部分poetry

python setup.py python-packaging python-poetry pyproject.toml

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

PyCharm项目无法添加诗歌解释器

  • 操作系统:win10
  • PyCharm 版本:PyCharm Professional 2021.2.2
  • 诗歌版本:1.1.13
  • 诗歌插件版本:1.1.5-212(来自 koudai aono)

我尝试通过诗歌环境构建一个新的 PyCharm 项目, 在此输入图像描述 设置时显示 在此输入图像描述

并且无法设置解释器。有没有人以前遇到过类似的问题并且知道如何解决这个错误?

更新
我已将PyCharm版本升级到PyCharm Professional 2022.1.1,问题仍然存在。

python pycharm python-poetry

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

使用诗歌打包使用 cython 的库的最佳实践

我一直习惯于poetry开发 python 包。现在我想在一个新项目中使用 Cython,但我对如何构建库有点困惑,是否使用 asetup.py而不是使用poetry

我看过关于如何在包中包含代码(带有 a )但不使用诗歌的帖子(像这样)。其他人,这个(和这个)确实如此,但它们依赖于脚本,并且其中一个评论中说,如果未安装,该方法将不起作用。cythonsetup.pybuild.pygcc

那么,使用诗歌打包(并发布到 PyPI)使用 cython 的库的最佳实践是什么?

python cython pypi python-poetry cicd

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

^在诗中是什么意思?

我没有在文档中找到它,但我在诗歌中的 pyproject.toml 文件中看到如下内容:

psycopg2-binary="^2.9.1"
Run Code Online (Sandbox Code Playgroud)

^ 是什么意思?

谢谢!

python-poetry

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

诗歌锁 - 空哈希

我在做

poetry lock
Run Code Online (Sandbox Code Playgroud)

然后我打开poetry.lock文件并看到该metadata.files块不包含哈希值:

[metadata.files]
aiohttp = []
aiosignal = []
apscheduler = []
...
Run Code Online (Sandbox Code Playgroud)

以前,不是这样的。空哈希的原因可能是什么?

python python-poetry

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

在 docker 构建期间,Poetry 安装失败,并出现 CalledProcessError 和 EnvCommandError

问题总结

我一直在尝试构建一个使用诗歌命令安装依赖项的 docker 映像RUN poetry install
我将其作为docker buildGitLab CI/CD 管道工作的一部分,在自己的运行器 VM 实例上运行它。但是,docker 构建过程在使用 运行
期间反复崩溃,然后在处理此错误期间使用和错误。 下面是一些错误示例:poetry installCalledProcessErrorEnvCommandErrorPoetryException

 CalledProcessError
 Command '['/home/ray/anaconda3/bin/python', '/home/ray/anaconda3/lib/python3.9/site-packages/virtualenv/seed/wheels/embed/pip-22.0.4-py3-none-any.whl/pip', 'install', '--disable-pip-version-check', '--prefix', '/home/ray/anaconda3', '--no-deps', '/home/ray/.cache/pypoetry/artifacts/a8/b9/10/d38e9304d486f9398ab4163054bd6af79c74073ad8685d6cc67f88eccc/Werkzeug-2.2.2-py3-none-any.whl']' returned non-zero exit status 1.
Run Code Online (Sandbox Code Playgroud)

然后

EnvCommandError
Command ['/home/ray/anaconda3/bin/python', '/home/ray/anaconda3/lib/python3.9/site-packages/virtualenv/seed/wheels/embed/pip-22.0.4-py3-none-any.whl/pip', 'install', '--disable-pip-version-check', '--prefix', '/home/ray/anaconda3', '--no-deps', '/home/ray/.cache/pypoetry/artifacts/a8/b9/10/d38e9304d486f9398ab4163054bd6af79c74073ad8685d6cc67f88eccc/Werkzeug-2.2.2-py3-none-any.whl'] errored with the following return code 1, and output: 
WARNING: Ignoring invalid distribution -irtualenv (/home/ray/anaconda3/lib/python3.9/site-packages)
ERROR: Could not install packages due to an OSError: [Errno 2] No such file …
Run Code Online (Sandbox Code Playgroud)

pypi docker python-poetry

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

诗歌在同一环境中安装多个项目

我正在尝试解决我认为是诗歌的常见问题,但无法找到相关文档。我的项目包含多个包,并使用 pyproject.toml 和诗歌来管理此结构的依赖关系

/pyproject.toml
/poetry.lock

/package1/pyproject.toml
/package1/poetry.lock
/package1/src/package1/...
Run Code Online (Sandbox Code Playgroud)

/package1/pyproject.toml包含 pypi 依赖项并将[tool.poetry.dependencies]可构建包定义为

packages = [
    { include = "package1", from = "./src" },
]
Run Code Online (Sandbox Code Playgroud)

/pyproject.toml参考文献package1

[tool.poetry.dependencies]
package1 = { path = "./package1", develop = true }
Run Code Online (Sandbox Code Playgroud)

最后,我的 Dockerfile 使用以下命令安装应用程序

WORKDIR /app/package1
RUN poetry install
WORKDIR /app
RUN poetry install
Run Code Online (Sandbox Code Playgroud)

问题在于,Poetry 将每个“项目”(由 pyproject.toml 文件标识)安装在单独的虚拟环境中,并且似乎不支持在同一环境中安装这两个项目。当我执行应用程序时,它可以找到package1但没有找到任何package1依赖项。

如何将所有内容安装在同一环境中?

我该如何处理这种情况?

python-poetry pyproject.toml

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

诗歌安装 - ParseConstraintError 无法解析版本约束:安装错误

我正在使用 python 诗歌,要了解它请参阅
\n安装时我没有遇到任何问题,命令

\nPoetry 能够安装这些软件包,但它被卡在中间了。
\n我尝试做堆栈溢出和谷歌上存在的多种解决方案。再次没有任何作用。
\n现在我收到以下错误:

\n
(.venv) PS C:\\Project_File\\backend> poetry install\nInstalling dependencies from lock file\n\n  ParseConstraintError                                                                                              \n                                                                                                                    \n  Could not parse version constraint: install                                                                       \n                                                                                                                    \n  at ~\\AppData\\Roaming\\pypoetry\\venv\\lib\\site-packages\\poetry\\core\\semver\\__init__.py:149 in parse_single_constraint\n      145\xe2\x94\x82             return VersionUnion(VersionRange(max=version), VersionRange(min=version))                    \n      146\xe2\x94\x82         else:                                                                                            \n      147\xe2\x94\x82             return version                                                                               \n      148\xe2\x94\x82                                                                                                          \n    \xe2\x86\x92 149\xe2\x94\x82     raise ParseConstraintError(                                                                          \n      150\xe2\x94\x82         "Could not parse version constraint: {}".format(constraint)                                      \n      151\xe2\x94\x82     )                                                                                                    \n      152\xe2\x94\x82  \n
Run Code Online (Sandbox Code Playgroud)\n

我在堆栈溢出上发现了一些相关的错误问题:\n Could not parse versionconstraint ~xx: Invalid version string "~xx" …

python windows pycharm python-3.x python-poetry

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