Git/Github/Python: 如何把一个项目的部分代码做成一个独立的库?并且保持项目的子项目可以独立运行?

2014-02-03 01:38:50 +08:00
 alexapollo
项目链接:https://github.com/geekan/scrapy-examples
在我的这个项目中,我发现有一些代码是冗余的,会造成不必要的代码膨胀(其实即任意爬虫的misc文件夹),我希望把这个项目的这部分代码独立,作成一个公用库。

个人思路:
1、在git clone / 下载的时候,用户会自动下载这部分库,拥有库的每个文件夹是独立的。
2、对于公用库的文件夹,我只需要维护一个git的引用(指向源代码),而不需要维护单独的源代码。

待选方法:
Git: submodule / subtree 的方法,但不是很清楚在实际使用时会有哪些坑,而且看起来都比较复杂,不知道哪个比较好用?
Python: 如果仅仅加个代码库,那么可以直接加在sys.path里。但我希望项目的任何一个部分都可以独立发布,而不需要去copy & paste公有库。

实际场景:
在我的scrapy-examples项目中,doubanbook和hrtencent都需要misc库,而两者的misc库都是一致的,我需要把misc库独立开来,但是在发布之后,我可以快速剥离doubanbook,脱离我的项目再进行其他的运用(比如进行深度再加工)


不知道是否有一个最佳实践?非常乐意见到任何建议!
4140 次点击
所在节点    问与答
2 条回复
bearcat001
2014-02-03 13:45:38 +08:00
git submodule
用这个就好了
alexapollo
2014-02-03 13:47:35 +08:00
@bearcat001 我试试,多谢~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/98882

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX