gpt4 book ai didi

python - 将 Cython 标记为构建依赖项?

转载 作者:太空狗 更新时间:2023-10-30 01:02:16 28 4
gpt4 key购买 nike

有一个带有 setup.py 的 Python 包,内容如下:

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

setup(
name = 'fastahack',
ext_modules=[
Extension("fastahack.cfastahack",
sources=["fastahack/cfastahack.pyx", "lib/Fasta.cpp", "lib/split.cpp"],
libraries=["stdc++"],
include_dirs=["lib/"],
language="c++"),
],
package_data = {'lib': ['*.pyx', "*.c", "*.h", "README.rst"]},
package_dir = {"fastahack": "fastahack"},
cmdclass = {'build_ext': build_ext},
packages = ['fastahack', 'fastahack.tests'],
author = "Brent Pedersen",
author_email="bpederse@gmail.com",
#test_suite='nose.collector'
)

如果未安装Cython,则无法导入此setup.py。据我所知,导入 setup.py 是像 pip 这样的工具找出包的依赖项的方式。我想设置这个包,以便它可以上传到 PyPI,事实上它取决于 Cython pip install”直接从 Git 存储库。

当未安装 Cython 时,如何打包此模块以便从 Internet 正确安装它?始终使用最新版本的 Cython 会更好。

最佳答案

您可以使用 PEP-518 将 Cython 指定为构建依赖项项目规范。

在文件 pyproject.toml 中(与 setup.py 在同一目录中)插入:

[build-system]
requires = ["setuptools", "wheel", "Cython"]

然后将在构建包之前安装 Cython。

请注意,(目前)如果您在本地将您的软件包安装为可编辑的(即使用 --editable-e) setuptools v64支持使用 pyproject.toml 构建的可编辑安装

关于python - 将 Cython 标记为构建依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18023546/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com