标签: python-poetry

如何使用系统安装的软件包?

我正在尝试编写脚本,它应该使用 Portage API。但是 Portage python 包在 PyPi 中不可用,但即使可用也没有任何意义,因为它应该从某些具有包数据库和配置的配置系统中使用。

我尝试编写以下丑陋的代码:

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

click = "^7.0-r1"

portage = [
{ markers = "python_version ~= '3.6' and sys_platform == 'linux'", path = "/usr/lib64/python3.6/site-packages/portage/" },
{ markers = "python_version ~= '3.7' and sys_platform == 'linux'", path = "/usr/lib64/python3.7/site-packages/portage/" },
{ markers = "python_version ~= '3.8' and sys_platform == 'linux'", path = "/usr/lib64/python3.8/site-packages/portage/" },
{ markers = "python_version ~= '3.9' and sys_platform == 'linux'", path = "/usr/lib64/python3.9/site-packages/portage/" }
] 
Run Code Online (Sandbox Code Playgroud)

但这不起作用。Poetry 不会将路径目录中的代码视为 …

python gentoo python-packaging python-poetry

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

使用天蓝色管道和诗歌,有什么方法可以避免在每个脚本中采购 ~/.poetry/env ?

我目前使用下面的脚本来构建我的包并将其发布到私有 Azure Artifacts 源。在每个脚本中,我都必须运行该行source $HOME/.poetry/env,否则它找不到诗歌命令。

有没有办法消除这种重复?

完整脚本:

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

strategy:
  matrix:
    Python38:
      python.version: '3.8'

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '$(python.version)'
  displayName: 'Use Python $(python.version)'

- script: |
    sudo apt-get install texlive texlive-latex-extra latexmk
    python -m pip install --upgrade pip
    python -m pip install keyring artifacts-keyring
    curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
    source $HOME/.poetry/env
    poetry install
  displayName: 'Install package and tools'

- script: |
    source $HOME/.poetry/env
    poetry run python -m isort -rc
    poetry run python …
Run Code Online (Sandbox Code Playgroud)

python azure-pipelines python-poetry azure-pipelines-yaml

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

Poetry install --no-dev 需要安装 Rust 吗?

我正在 Raspberry pi 3b+(Lite buster 2020 年 2 月)的容器中安装 Poetry。我使用图像arm32v7/python:3.7-slim-buster

这里是Dockerfile

FROM arm32v7/python:3.7-slim-buster
RUN apt-get update
RUN apt-get install libssl-dev -y
RUN apt-get install libffi-dev
RUN apt-get install build-essential -y
RUN pip install poetry
RUN pip install --upgrade pip

COPY ./pyproject.toml /app/
WORKDIR /app/
RUN poetry install --no-dev

COPY ./rpiserver /app/rpiserver
RUN poetry install --no-dev
ENTRYPOINT poetry
Run Code Online (Sandbox Code Playgroud)

当 docker 运行该步骤时,poetry install --no-dev它会安装许多软件包,包括orjson需要“Rust nightly toolchain”的 (2.6.3)。所以失败了!

这是错误消息:

Writing lock file


Package operations: 33 …
Run Code Online (Sandbox Code Playgroud)

python rust docker python-poetry

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

使用 Poetry 设置 Emacs Elpy

如何配置 Elpy 以使用安装在 Poetry 项目虚拟环境中的开发依赖项(例如 Black、Jedi 和 flake8),而不是安装在系统范围内的依赖项?

emacs elpy python-poetry

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

带有 Poetry 的 Python 命名空间包

我正在使用 Poetry 构建一些命名空间包。每个包的目录结构都是相同的:

package_bbb
    pyproject.toml
    aaa
        bbb
            myservice.py
            __init__.py
        __init__.py
Run Code Online (Sandbox Code Playgroud)

使用 Poetry 我可以构建一个轮子,安装它并使用该包:

package_bbb
    pyproject.toml
    aaa
        bbb
            myservice.py
            __init__.py
        __init__.py
Run Code Online (Sandbox Code Playgroud)

当我开始构建第二个包时,我的问题发生了,它需要第一个包作为依赖项。

结构保持不变:

package_ccc
    pyproject.toml
    aaa
        ccc
            mydata.py
            __init__.py
        __init__.py
Run Code Online (Sandbox Code Playgroud)

在诗歌中,我将第一个添加为依赖项:

from aaa.bbb import myservice
Run Code Online (Sandbox Code Playgroud)

该软件包将(来自实习生存储库)安装在生成的 virtualenv 中并添加到 pyproject.toml 中。

第二个包生成的轮子也是完美的。第一个包将由 pip 作为依赖项安装。

问题出在开发过程中:如果我尝试(例如在 mydata.py 内部从第一个包导入某些内容:

package_ccc
    pyproject.toml
    aaa
        ccc
            mydata.py
            __init__.py
        __init__.py
Run Code Online (Sandbox Code Playgroud)

我有一个模块未找到。我认为发生这种情况是因为我有 2 个 aaa 命名空间:一个在 virtualenv 中,一个在项目根目录中。第二个优先,没有aaa.bbb。

我是否遗漏了包结构中的某些内容,或者有办法避免这种“命名空间冲突”?

非常感谢你的帮助!

python python-poetry

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

如何强制执行最低 python 诗歌版本

我正在使用 python-poetry 来管理 python 项目中的依赖项。我想强制执行最低poetry版本以避免poetry.lock版本控制中文件的不必要更改。

build-systems我尝试在文件部分更新它pyproject.toml,但它也适用于较低版本。

有没有办法可以poetry在项目中强制执行最低版本?

python python-poetry

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

如何在 Python Poetry 中指定对操作系统的依赖关系?

如果我想开发一个仅适用于 Linux 和 macOS 的 Python 包。如何在 Python Poetry 中指定此限制?

python dependencies operating-system markers python-poetry

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

诗歌更新访问被拒绝

我在 Windows 上的 conda 环境中使用诗歌。尽管我在提升的 shell 中工作(管理员权限),但我在涉及 的包(.dll例如 tensorflow 或 scipy.

conda create --name test python=3.7
conda activate test
pip install poetry
poetry add "tensorflow=1.5.1" scipy pandas
poetry install
poetry add "tensorflow=1.4.1"
poetry install 
Run Code Online (Sandbox Code Playgroud)

会归还我

ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied:
Run Code Online (Sandbox Code Playgroud)

python python-poetry

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

如何集成 pyenv、poetry 和 docker?

注意:我刚刚开始尝试学习docker,所以我是一个初学者

目前,我正在使用诗歌和 pyenv 来制作我的 python 项目。我使用 pyenv 作为我的 python 版本,并使用诗歌来创建和管理我的 python 项目。但是,我也想使用 docker。那么,我怎样才能将这三个集成到一个Python项目中呢?

package docker pyenv python-packaging python-poetry

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

Poetry 安装 grpcio 失败并出现 EnvCommandError

我使用的是 macOS BigSur 11.1、poetry 1.1.4 和 python 3.8.6。在我的诗歌项目中,我尝试运行poetry add grpcio,但EnvCommandError运行几分钟后会产生令人难以置信的长输出。

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

感谢您的任何帮助!

python macos python-poetry macos-big-sur

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