如何跨项目使用实用程序并确保它已更新

How to use a utils across projects and ensure it is updated

我已经完成了一些 Python 的工作项目,这些项目都围绕着提取数据、执行 Pandas 操作以及导出到 Excel。显然,我一直在重复使用一些常用功能。我已将这些保存到 utils.py 中,并将粘贴 utils.py 复制到每个新项目中。

每当我更改 utils.py 时,我需要确保在我的其他项目中更改它,这是一个容易出错的过程

你有什么建议?

目前,我为每个项目创建一个新目录,所以

/PyCharm Projects
--/CollegeBoard
----/venv
----/CollegeBoard.py
----/Utils.py
----/Paths.py
--/BoxTracking
----/venv
----/BoxTracking.py
----/Utils.py
----/Paths.py

我想知道这是否是 structure/version 控制我的工作的最有效方式。因为我也有很多共同的导入,像这样的目录会更好吗?

/Projects
--/Reporting
----/venv
----/Collegeboard
------/Collegeboard.py
------/paths.py
----/BoxTracking
------/BoxTracking.py
------/paths.py
----/Utils.py

如果有任何相关资源,我将不胜感激。

不要将 utils.py 的副本放入您的每个项目中,而是将 utils.py 放入一个包中,在某个地方有它自己专用的 repository/folder。我建议将其重命名为不太通用的名称,例如 "zhous_utils".

在 zhous_utils 的专用存储库中,您可以创建一个 setup.py 文件,然后您可以使用该 setup.py 文件将 zhous_utils 的当前版本安装到您的 python 安装。这样您就可以将 zhous_utils 导入到您 PC 上的任何其他 python 脚本中,就像您将导入 pandas 或您安装到计算机上的任何其他软件包一样。

查看这个 Whosebug 线程:What is setup.py?

当您了解 setup.py 时,您将了解如何制作和安装您自己的软件包,以便您可以将这些已安装的软件包导入到您 PC 上的任何 python 脚本中。这样 zhous_utils 的所有源代码都集中在您 PC 上的一个文件夹中,您可以随时更新并重新安装包。

现在,当然,这有一些潜力 challenges/downsides。如果您将 zhous_utils 安装到您的计算机上,然后在您的其他项目之一中导入并使用 zhous_utils,那么您只是使 zhous_utils 成为该项目的依赖项。这意味着如果您想与其他人共享该项目并让他们也参与其中或以某种方式使用它,那么他们将需要安装 zhous_utils。请注意这一点。如果您是唯一一个 interacting/developing 您打算导入 zhous_utils 项目源代码的人,这将不是问题。