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

如何在自有包bar中使用修改了setup.py的第三方分叉包my_foo?

关于分叉包my_foo在bar中的使用方案

最佳使用方式

  • 优先给原包foo提PR:你只修改了setup.py里的编译标记,属于兼容性修复,直接给上游foo提交Pull Request是最省心的选择。如果上游合并了你的修改,bar直接依赖官方版foo即可,不用维护分叉包。
  • 若上游不接受修改,直接依赖分叉包而非做子包:别把my_foo做成bar的子包bar.my_foo,这样会造成代码冗余,后续原foo更新时还得手动同步,维护成本高。正确的做法是让bar直接依赖你的my_foo分叉版本。

是否需要上传my_foo到PyPI?

  • 如果bar是公开分发的包:建议上传my_foo到PyPI。注意给包名改个唯一标识,比如foo-michael或者michael-foo,避免和原foo重名;同时在setup.py里更新name字段,描述里说明是原foo的分叉版本及修改内容。上传后,在bar的setup.py里设置install_requires = ["foo-michael==x.y.z"](替换成你上传的版本号)。
  • 如果是私人/内部项目:可以不用上传PyPI,直接通过Git仓库地址依赖。比如在bar的setup.py里写:
    install_requires = [
        "my_foo @ git+https://github.com/你的用户名/my_foo.git@指定分支或标签"
    ]
    
    或者在requirements.txt中指定:
    git+https://github.com/你的用户名/my_foo.git@指定分支或标签#egg=my_foo
    

能否从PyPI安装带自定义setup.py的包?

完全可以。PyPI上的包本身就包含setup.py(或pyproject.toml),你上传的my_foo就是带修改后setup.py的版本,用户用pip install 你的包名安装时,pip会自动执行你自定义的setup.py完成编译和安装流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 14:15:40