alexapollo
V2EX  ›  问与答

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

  •  
  •   alexapollo · Feb 3, 2014 · 4586 views
    This topic created in 4503 days ago, the information mentioned may be changed or developed.
    项目链接: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,脱离我的项目再进行其他的运用(比如进行深度再加工)


    不知道是否有一个最佳实践?非常乐意见到任何建议!
    2 replies    1970-01-01 08:00:00 +08:00
    bearcat001
        1
    bearcat001  
       Feb 3, 2014
    git submodule
    用这个就好了
    alexapollo
        2
    alexapollo  
    OP
       Feb 3, 2014
    @bearcat001 我试试,多谢~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   976 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:45 · PVG 05:45 · LAX 14:45 · JFK 17:45
    ♥ Do have faith in what you're doing.