首页 > 解决方案 > 在新项目中重用我自己的功能的最佳方式?

问题描述

将我制作的功能轻松添加到新项目的最佳方法是什么?我已经制作了一堆我自己创建的 Python 函数,这些函数经常用于我的项目,但是我忘记了我将它们放在哪里,并且当我更改它们时它们的版本变得不同步

我应该将所有这些功能添加到 pypi 吗?这似乎很耗时,特别是因为其中很多都很小。

我还可以将该函数保存为 .py 文件,并将它们添加到我创建新项目的目录中,并通过简单的导入来导入。但问题是,如果我更改原始文件的某些内容,我将需要跟踪我的函数文件的每个实例并用新文件替换它们。

我也可以使用绝对路径导入,我已经简要介绍过。它们看起来很烦人,但这可能比每次更改文件时都跟踪文件的每个副本更烦人。另一个大问题是我做了很多云计算,每次我从本地运行转换到云上时都会破坏我的代码,并且无论如何都会强制我复制代码。

这里有没有人遇到过类似的问题?您是否开发了一个很好的解决方案?有没有我没有想到的选择?欢迎所有建议!

标签: pythonfunctionimportmodulepackage

解决方案


这是创建本地包的基本示例。

文件夹结构

root/
├─ mypackage/
│  ├─ __init__.py
│  ├─ func.py
setup.py

__init__.py

from .func import foo

setup.py

from distutils.core import setup


setup(name="mypackage",
      version='1.0',
      description='',
      packages=["mypackage"],
     )

func.py

def foo():
    print("foo")
    return

脚步

构建和安装

在终端中运行以下。预先激活您的项目环境

cd root
python setup.py sdist
pip install ./dist/mypackage-1.0.tar.gz

用法

首先激活您的环境。然后在 python 控制台中运行以下命令:

>>> import mypackage
>>> mypackage.foo()
# foo

推荐阅读