使用setuptools能否将另一个可编辑包列为可编辑包的依赖?
实现可编辑模式下的跨包依赖
完全可行,以下是两种可靠的实现方式:
方式一:一次性安装多个可编辑包
直接通过pip命令同时指定两个包的路径并启用可编辑模式:
pip install -e /somewhere/in/mysystem/my_pkg_1 -e /somewhere/in/mysystem/my_pkg_2
执行后,pip list会显示两个包都处于可编辑状态,各自对应本地项目路径。
方式二:通过开发依赖配置自动关联
修改my_pkg_1的pyproject.toml,添加开发环境专属的依赖项,将my_pkg_2的可编辑引用纳入其中:
[build-system] requires = ["setuptools"] build-backend = "setuptools.build_meta" [project] name = "my_pkg_1" version = "0.0.1" dependencies = [ # 生产环境依赖,无需可编辑 "my_pkg_2>=0.0.1" ] [project.optional-dependencies] dev = [ # 开发环境使用可编辑模式的依赖 "-e file:///somewhere/in/mysystem/my_pkg_2" ]
然后执行以下命令安装带开发依赖的可编辑版本:
pip install -e .[dev]
这样my_pkg_1和my_pkg_2都会以可编辑模式安装,满足开发时的修改同步需求。
注意:生产环境安装时直接使用pip install .即可,不会引入可编辑依赖,符合生产环境的稳定性要求。
内容的提问来源于stack exchange,提问作者Nasa
相关产品推荐
相关产品推荐

