You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pip install .无法安装自定义包:依赖导入问题排查

解决pip install -e .时找不到Cython/numpy的问题

问题原因

pip执行install -e .时会创建隔离的临时构建环境,默认不会继承当前虚拟环境中的构建依赖(如Cython、numpy),因此直接在setup.py顶部导入这些包会触发ModuleNotFoundError。而python setup.py --develop直接使用当前环境,所以能正常运行。

解决方案

方案1:修改setup.py添加构建依赖声明

在setup()函数中指定构建阶段所需依赖,让pip先在临时环境安装这些包再执行setup.py:

setup(
    # 保留你原有的name、version、packages等参数
    setup_requires=[
        'Cython>=0.29',
        'numpy>=1.21'
    ],
    install_requires=[
        'Cython>=0.29',
        'numpy>=1.21'
    ],
    ext_modules=cythonize(
        Extension(
            # 替换为你的扩展模块配置,比如"your_package.core", sources=["src/your_package/core.pyx"]
            include_dirs=[np.get_include()]
        )
    )
)
  • setup_requires:仅用于构建阶段,确保临时环境具备编译所需依赖
  • install_requires:确保最终安装的运行环境也包含这些依赖,避免后续代码执行报错

方案2:使用pyproject.toml(推荐,符合PEP 518标准)

在项目根目录创建pyproject.toml文件,指定构建系统依赖,pip会自动读取并在临时环境安装:

[build-system]
requires = ["setuptools>=61.0", "wheel", "Cython>=0.29", "numpy>=1.21"]
build-backend = "setuptools.build_meta"

这种方式无需修改setup.py的导入逻辑,是官方推荐的现代构建方式,兼容性更强。

验证

确保mamba虚拟环境处于激活状态,重新执行pip install -e .即可完成安装。

内容的提问来源于stack exchange,提问作者Gerges

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:05:15