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

同目录多本地包setup.py免改结构的pip -e安装方法咨询

双独立setup文件的editable安装实现方案

不需要调整现有项目整体结构,以下两种方案均基于标准pip install -e流程实现,可直接替代手动注释配置、python setup.py develop等非推荐写法。


方案1:自定义setup脚本+pip构建参数(零额外目录)

直接在项目根目录创建两个独立的配置文件即可,和你原有默认的setup.py并存互不影响:

  • 新建setup_package1.py,内容只保留package1对应的打包配置
  • 新建setup_package2.py,内容只保留package2对应的打包配置

安装时直接通过setuptools官方支持的--setup-script参数指定要使用的配置文件,不需要重命名、修改原有文件:

  • 安装package1:
    pip install -e . --config-settings=--build-option=--setup-script=setup_package1.py
    
  • 安装package2:
    pip install -e . --config-settings=--build-option=--setup-script=setup_package2.py
    

注:如果你的pip版本低于22.3,可将参数替换为兼容写法:pip install -e . --install-option="--setup-script=setup_package1.py"

这个方式完全走pip的标准构建安装流程,没有弃用风险,和你直接用默认setup.py执行pip install -e .的效果完全一致。

方案2:轻量入口目录(不需要记额外参数)

如果你不想每次安装都带长参数,可以在根目录新建两个纯入口用的空文件夹,不需要移动任何原有代码文件:

  • 新建install_pkg1目录,在里面写极简setup.py,配置中直接指向根目录下的package1,示例内容:
    from setuptools import setup
    import os
    root_path = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
    setup(
        name="package1",
        version="0.1",
        packages=["package1"],
        package_dir={"": root_path}
    )
    
  • 新建install_pkg2目录,同理写对应配置指向package2即可。

安装时直接指定入口目录路径即可,命令形式和你预期的完全一致:

  • 安装package1:
    pip install -e ./install_pkg1
    
  • 安装package2:
    pip install -e ./install_pkg2
    

原有根目录的setup.py、package1/、package2/的内容和结构完全不需要做任何改动。


说明:你之前用的python3 package1_setup.py develop之所以不推荐,是因为setuptools已经正式弃用了直接调用setup.py命令行的接口,后续高版本会直接移除该能力,上面两种方案都是走pip标准构建流程,属于官方推荐的实现方式,不存在兼容隐患。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:39:15