python - 如何(以何种形式)共享(交付)一个 Python 函数?

标签 python sockets deployment publish

我工作的最终成果应该是一个 Python 函数,它以一个 JSON 对象作为唯一输入,并返回另一个 JSON 对象作为输出。更具体地说,我是一名数据科学家,我所说的功能源自数据并提供预测(换句话说,它是一个机器学习模型)。

所以,我的问题是如何将此功能交付给将其整合到网络服务中的“技术团队”。

目前我面临的问题很少。首先,技术团队不一定在 Python 环境下工作。因此,他们不能只是将我的函数“复制并粘贴”到他们的代码中。其次,我想确保我的函数在与我相同的环境中运行。例如,我可以想象我使用了一些技术团队没有的库,或者他们的版本与我使用的版本不同。

添加

作为一种可能的解决方案,我考虑以下内容。我启动了一个 Python 进程,它监听一个套接字,接受传入的字符串,将它们转换为 JSON,将 JSON 提供给“已发布”函数并将输出 JSON 作为字符串返回。这个解决方案有缺点吗?换句话说,将 Python 函数“发布”为监听套接字的后台进程是否是个好主意?

最佳答案

您对使用套接字有正确的想法,但是有大量框架完全按照您的意愿行事。点赞hleggs , 我建议你结帐Flask构建一个微服务。这将允许其他团队在 HTTP 请求中将 JSON 对象发布到您的 flask 应用程序并接收回 JSON 对象。无需了解底层系统或其他要求!

这是一个使用 JSON 回复和响应的 flask 应用模板

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/', methods=['POST'])
def index():
    json = request.json
    return jsonify(your_function(json))


if __name__=='__main__':
    app.run(host='0.0.0.0', port=5000)

编辑:根据 Peter Britain 直接嵌入我的代码的建议

关于python - 如何(以何种形式)共享(交付)一个 Python 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38700517/

相关文章:

c - 套接字:如何使用 inet_pton() 屏蔽二进制形式的 ip 地址

Python套接字绑定(bind)0.0.0.0,检查传入消息

azure - 在 azure 函数发布过程中包含使用 dllimport 使用的 c/c++ 非托管代码 dll

java - 在 weblogic 上共享应用程序类加载器

python - pybind11:使用设置工具链接

python - 如何在Python中用n个字符填充字符串以使其达到一定长度

java - 在单独的线程中监听连接

asp.net-mvc - 将我的 ASP.NET MVC 应用程序部署到我的 Web 主机时,由于配置锁定导致内部服务器错误

Python Pygame 按两个方向键和另一个键射击没有子弹

python - 如何从本地文件导入环境变量到Django