【问题标题】:How to manage the object_detection package dependency when distributing a python package?分发 python 包时如何管理 object_detection 包依赖关系?
【发布时间】:2018-01-22 11:27:56
【问题描述】:
我正在一个项目中工作,该项目使用 TensorFlow 模型存储库中的对象检测模块。我想知道仅安装/管理 object_detection 模块的最佳方法。目前,我将 github 子模块与 TF 模型一起使用,但为了分发我的代码,我不希望捆绑整个 TF 模型 repo,只捆绑 object_detection 模块。
有可能做到吗?
提前致谢。
【问题讨论】:
标签:
python
tensorflow
object-detection
【解决方案1】:
我建议的方式是继续将项目用作 git 子模块,因为 object_detection 模块依赖于 research 目录之外的 official 包。另外,目前 pip 上没有 object_detection 的更新版本。
如果你真的想只使用你需要的部分,你可以按照@Alexandre Passos 提到的那样进行操作。
您可以添加一个 Makefile 来帮助您分发您的包,并添加一个 setup.py 来指定其他依赖项并使您的包可分发。
Makefile 应该如下所示:
init:
git submodule update --init --progress
cd models/research && protoc object_detection/protos/*.proto --python_out=.
cd models/research && python setup.py install
cd models/research/slim && python setup.py install
# Install your package
pip install -e .