Python打包:如何处理我在大多数项目中使用的辅助模块
我有许多辅助模块,在我的不同项目中使用。例如,这些辅助模块包含一些用于日志、文件、装饰器等的代码 对于我个人使用,我可以简单地捆绑和安装所有辅助模块Python打包:如何处理我在大多数项目中使用的辅助模块,python,publish,pypi,Python,Publish,Pypi,我有许多辅助模块,在我的不同项目中使用。例如,这些辅助模块包含一些用于日志、文件、装饰器等的代码 对于我个人使用,我可以简单地捆绑和安装所有辅助模块 但是,如果我想在PyPI上发布我的项目,那么最合适的方式是什么?将辅助模块也发布为一个包是否合适?即使它们几乎没有捆绑的意义,并且除了在使用我的其他项目时对任何人都没有安装的用处,然后要求为我的其他每个项目安装该辅助包 将这样的库拆分为单独的“项目”/“包”并不少见,例如,它基于(随机示例-仅仅因为我昨天浏览了repo…) 因此,我建议您将实用程序
但是,如果我想在PyPI上发布我的项目,那么最合适的方式是什么?将辅助模块也发布为一个包是否合适?即使它们几乎没有捆绑的意义,并且除了在使用我的其他项目时对任何人都没有安装的用处,然后要求为我的其他每个项目安装该辅助包 将这样的库拆分为单独的“项目”/“包”并不少见,例如,它基于(随机示例-仅仅因为我昨天浏览了repo…) 因此,我建议您将实用程序命名为
-util
(或“各种”,或“东西”:),并将它们作为pipy上的一个模块单独发布。这是一种更简洁的方法,因为它允许不同的项目使用基础库的不同版本,而不必维护该库的多个副本,并且具有明确的版本控制/依赖关系
您的其他选择:
v0.1.1
,而不是v0.1.0
,而B项目则相反。谢天谢地,pythonvenv
可以帮助解决这种情况
希望有帮助除非它们很大,否则将它们作为主要项目的一部分进行捆绑可能更容易。当然,如果人们安装了你的多个项目,他们可能会有一些冗余文件,但最多可能是千字节。@Amber很抱歉问了一个可能很愚蠢的问题,我不熟悉打包,但是我怎样才能在不复制文件的情况下将它们捆绑到我的主项目中呢?如果你担心将一个“无用”的包上载到pypi,你可以用你所有的实用程序文件创建一个git repo,并将该repo添加到你的依赖项中。@urban谢谢,这让人放心:)至于最后一段:您是否有一个链接,解释如何告诉setuptools在虚拟环境中安装,而不强迫最终用户自己创建虚拟环境?@Bananach
venv
将在您处理冲突/发布时解决问题。。。如果你有最终用户,我不能100%确定最好的方法。在这种情况下,我通常会采用类似于composer
(php)的方法-使用install.sh/Makefile下载/vendor/
中的依赖项,然后将其包含在路径中。。。Python/setuptools可能有一种“官方”的方法来实现这一点