【发布时间】:2021-12-14 22:00:08
【问题描述】:
在新项目中轻松添加功能的最佳方法是什么?我已经创建了一堆我自己创建的 Python 函数,这些函数经常用于我的项目,但是我忘记了我将它们全部放在哪里,并且当我更改它们时它们的版本变得不同步
我应该将所有这些函数添加到 pypi 吗?这似乎很耗时,尤其是因为其中很多都很小。
我还可以将函数保存为 .py 文件并将它们添加到我创建新项目的目录中,然后通过简单的导入来导入。但是这样做的问题是,如果我更改原始文件的某些内容,我需要跟踪我的函数文件的每个实例并用新文件替换它们。
我也可以使用绝对路径导入,我已经简要介绍过。它们看起来很烦人,但这可能比每次更改文件时都跟踪文件的每个副本更烦人。另一个大问题是我做了很多云计算,每次我从本地运行过渡到云上时都会破坏我的代码,并且无论如何都强制我复制代码。
这里有人遇到过类似的问题吗?您是否开发了一个很好的解决方案?有没有我没有想到的选择?欢迎所有建议!
【问题讨论】:
-
打成包,在项目环境中安装包
-
使用
sys.path将包含你的模块的目录添加到其他项目的搜索路径中。 -
@SSCFan,我的意思是创建一个基本的
setup.py并运行python setup.py sdist来制作本地包。如果它是其他人也可以使用的东西,那么pypi可能是个好主意,但不是必需的。 -
我的最后一个建议是查看cookiecutter 之类的内容,它允许您在创建新项目时定义模板,以便将现有代码填充到新项目中。当然,如果您想更改现有项目中的 utils 代码,这将不起作用。
-
我在实验中所做的事情是制作一个函数包,然后将该文件夹移动到我的 Python 库目录中,使这组函数可用于所有项目(使用此站点:timothybramlett.com/…)。不知道这是否会引起问题,但那是我的 2 美分 :)
标签: python function import module package