Poetry添加依赖时Cython构建环境缺失问题求助
解决Poetry安装pysam Git版本时的Cython构建问题
方法1:声明Cython为构建依赖
Poetry的构建环境和项目虚拟环境相互隔离,必须把Cython明确声明为构建阶段依赖,而非普通项目依赖。修改项目根目录的pyproject.toml,添加或更新[build-system]区块:
[build-system] requires = ["setuptools", "wheel", "cython>=0.29.32"] build-backend = "setuptools.build_meta"
修改完成后重新执行安装命令:
poetry add git+https://github.com/pysam-developers/pysam
方法2:给Poetry运行环境安装Cython
如果不想修改配置文件,可以直接在Poetry自身使用的Python环境(注意不是项目虚拟环境)中安装Cython:
# 先确认Poetry绑定的Python路径 poetry run which python # 替换下面的路径为上一步的输出结果,安装Cython /path/to/poetry/python -m pip install cython
之后再执行poetry add命令即可完成构建。
方法3:结合--build选项强制使用构建依赖
执行安装命令时加上--build参数,确保Poetry严格使用pyproject.toml中声明的构建依赖完成编译:
poetry add git+https://github.com/pysam-developers/pysam --build
核心原因说明
Poetry在构建第三方源码包时,会创建独立的临时构建环境,这个环境只会加载[build-system]区块里的依赖,项目虚拟环境中的Cython不会被自动识别,因此必须把Cython纳入构建依赖声明。
内容的提问来源于stack exchange,提问作者Theolodus
相关产品推荐
相关产品推荐

