我之前完成了一个项目,这开展第二个项目的过程中发现,由于两个项目有一些功能是重复了,所以可以借用第一个项目的函数或者模块。那么就有了这个问题,怎么安排多个python项目都用到的函数或者模块?我想到了一下几种可能都解决方案,并且选择了一个适合我自己都方案。
答案: 把共用的函数和模块抽取独立出来,组建一个新的第三方模块,这样2个项目都可以调用了。
再问:如何组建第三方模块?
答案:一种就是直接打包发布到pypi,作为共有包,然后其他项目都可以流畅地下载。第二种就是把共有的模块放到一个文件夹,加一个__init__.py文件组成本地的包然后其他项目每次调用这个包的时候都要事先指定一下路径。第一种的缺点就是打包发布比较麻烦,而且你的几个项目引用了这个自定义包之后别人还得学习你这个包的内容(?),第二种的缺点就是两个项目发布之前必须把本地的包想办法一同集成一下再发布,不然你指定的路径别人下载之后没法用。而且自己本地的代码其实也是偶尔会改变路径的,比如不同服务器啊什么的。所以最终我个人选择第一种方法,一方面联系,熟悉pypi发布包的流程,规范化自己的代码。另一方面一次放不之后保证其他项目调用的绝对是同一个文件,避免同步问题。