【问题标题】:Package installed failed with poetry backend诗歌后端安装包失败
【发布时间】:2021-06-13 14:51:11
【问题描述】:

我想从 github 安装一个包。

包的设置如下:

pyproject.toml

...
build = "build.py"

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

[build-system]
requires = ["poetry-core>=1.0.0", "cython"]
build-backend = "poetry.core.masonry.api"

build.py

from Cython.Build import cythonize
from distutils.command.build_ext import build_ext

def build(setup_kwargs):
    setup_kwargs.update({
        'ext_modules': cythonize(["asyncmy/*.pyx"],
                                 language_level=3,
                                 compiler_directives={'linetrace': True}),
        'cmdclass': {'build_ext': build_ext}
    })

setup.cfg

[flake8]
ignore = E501,W503,E203

我正在使用 [MSC v.1900 64 bit (AMD64)] on win32python3.7.7 + pip 21.0.1 工作,当我安装此软件包时

python -m pip install .

我遇到了类似的错误

ERROR: Could not build wheels for asyncmy which use PEP 517 and cannot be installed directly

但是如果我添加一个setup.py

# setup.py

import setuptools;setuptools.setup()

包可以正确安装,那么配置有什么问题?

谢谢。

【问题讨论】:

    标签: python cython setuptools setup.py python-poetry


    【解决方案1】:

    pip 不能使用诗歌作为构建后端,您需要使用 poetry 构建/安装此项目。

    如果您在 *nix 工作站上,您可以运行 curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python - 来安装它(有关详细信息,请参阅 the docs)。完成后,运行 poetry install 而不是 python -m pip install . 以获取项目的开发安装(包括虚拟化)。


    如果您想创建一个可以上传到包索引或直接使用pip 安装的可分发文件,请运行poetry build

    【讨论】:

    • 你的意思是不能打包上传到pypi for pip install
    • 可以,更简单,因为您不需要额外的库来为您处理发布。 poetry build 将为您创建一个 wheel-distribution,这是您想要上传到 pypi 的工件。诗歌可以使用poetry publish 为您处理该步骤(有关详细信息,请参阅the docs)。当有人用pip install 安装你的包时,它是用诗歌构建的这一事实无关紧要,它会正常工作。
    • 但是我很困惑为什么pip install 无法在Windows平台上安装模块asyncmyasyncmy你能帮我吗?
    • 我可以在到达我的 Windows 电脑后尝试重现它。但是看一眼他们的pypi条目,我可以看到他们没有为windows上传轮子,只有linux。他们上传了一个源代码分发,它 pip 下载然后尝试在本地构建。当它这样做时,pip 看到pyproject.toml 文件并假设它无法决定它应该选择哪个后端。您可以通过将 pip 升级到最新版本来修复它,它应该能够正确解析 pypoject 文件。
    • 好吧,我很好奇启动了另一台机器,并且可以重现您在项目中创建的问题中发布的错误。恐怕没有简单的解决方案,我需要一些时间来调试它。对 cython 和 windows 都有经验的人可能会偶然发现这个问题并提供一些见解。
    猜你喜欢
    • 2021-04-24
    • 1970-01-01
    • 2022-09-24
    • 2022-06-21
    • 2022-08-06
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2022-08-11
    相关资源
    最近更新 更多