python引入本地的包

部署运行你感兴趣的模型镜像
# -*- coding:utf-8 -*-
# @author Kuangjm
# @date 2022/7/20
# @file flask_demo.py

import sys
sys.path.append('/home/wangyp1008/chronic-diseases-risks/mode_transform')
sys.path.append('/home/wangyp1008/chronic-diseases-risks/parameter_format')
sys.path.append('/home/wangyp1008/chronic-diseases-risks/parameter_verify')

print(sys.path)
from jsonschema import ValidationError
from flask import Flask, request, jsonify

from healthy_lifestyle import HealthyLifestyle
from prostatic_cancer import ProstaticCancer
from stroke import StrokeTrans
from high_blood_pressure import HighBloodPressure
from ischemic_cardiovascular_disease import IschemicCardiovascularDisease
from diabetes import Diabetes
from obesity import Obesity
from metabolic_syndrom import MetabolicSyndrom
from osteoporotic_fracture import OsteoporoticFracture
from breast_cancer import BreastCancer
from dyslipidemia import Dyslipidemia
from lung_cancer import LungCancer

from healthy_lifestyle_verify import healthy_lifestyle_verify
from prostate_cancer_verify import prostate_cancer_verify
from stroke_verify import stroke_verify
from high_blood_pressure_verify import high_blood_pressure_verify
from ischemic_cardiovascular_disease_verify import ischemic_cardiovascular_disease_verify
from diabetes_verify import diabetes_verify

from healthy_lifestyle_params import healthy_lifestyle_params
from prostate_cancer_params import prostate_cancer_params
from stroke_params import stroke_params
from high_blood_pressure_params import high_blood_pressure_params
from ischemic_cardiovascular_disease_params import ischemic_cardiovascular_disease_params
from diabetes_params import diabetes_params
from obesity_params import obesity_params
from metabolic_syndrom_params import metabolic_syndrom_params
from osteoporotic_fracture_params import osteoporotic_fracture_params
from breast_cancer_params import breast_cancer_params
from dyslipidemia_params import dyslipidemia_params
from lung_cancer_params import lung_cancer_params

print("===================================================================================================================")

# from flask import Flask, request, jsonify
# from mode_transform.healthy_lifestyle import HealthyLifestyle
# from mode_transform.prostatic_cancer import ProstaticCancer
# from mode_transform.stroke import StrokeTrans
# from mode_transform.high_blood_pressure import HighBloodPressure
# from mode_transform.ischemic_cardiovascular_disease import IschemicCardiovascularDisease
# from mode_transform.diabetes import Diabetes
# from mode_transform.obesity import Obesity
# from mode_transform.metabolic_syndrom import MetabolicSyndrom
# from mode_transform.osteoporotic_fracture import OsteoporoticFracture
# from mode_transform.breast_cancer import BreastCancer
# from mode_transform.dyslipidemia import Dyslipidemia
# from mode_transform.lung_cancer import LungCancer

# from parameter_verify.healthy_lifestyle_verify import healthy_lifestyle_verify
# from parameter_verify.prostate_cancer_verify import prostate_cancer_verify
# from parameter_verify.stroke_verify import stroke_verify
# from parameter_verify.high_blood_pressure_verify import high_blood_pressure_verify
# from parameter_verify.ischemic_cardiovascular_disease_verify import ischemic_cardiovascular_disease_verify
# from parameter_verify.diabetes_verify import diabetes_verify

# from parameter_format.healthy_lifestyle_params import healthy_lifestyle_params
# from parameter_format.prostate_cancer_params import prostate_cancer_params
# from parameter_format.stroke_params import stroke_params
# from parameter_format.high_blood_pressure_params import high_blood_pressure_params
# from parameter_format.ischemic_cardiovascular_disease_params import ischemic_cardiovascular_disease_params
# from parameter_format.diabetes_params import diabetes_params
# from parameter_format.obesity_params import obesity_params
# from parameter_format.metabolic_syndrom_params import metabolic_syndrom_params
# from parameter_format.osteoporotic_fracture_params import osteoporotic_fracture_params
# from parameter_format.breast_cancer_params import breast_cancer_params
# from parameter_format.dyslipidemia_params import dyslipidemia_params
# from parameter_format.lung_cancer_params import lung_cancer_params




# 实例化app
app = Flask(import_name=__name__)


# 生活方式+健康年龄
@app.route('/healthy_lifestyle', methods=["POST"])
def healthy_lifestyle():
    data = request.get_json()

    try:
        healthy_lifestyle_verify(data)
    except ValidationError as e:
        msg = "参数不符合规定;{} 提示信息: {}".format(" --> ".join([i for i in e.path]), e.message)
        print(msg)
        return jsonify(status=500, msg=msg)

    params_dict = healthy_lifestyle_params(data)

    result = HealthyLifestyle(**params_dict).get_result()

    return jsonify(result)


# 前列腺癌
@app.route('/prostate_cancer', methods=["POST"])
def prostate_cancer():
    data = request.get_json()

    try:
        prostate_cancer_verify(data)
    except ValidationError as e:
        msg = "参数不符合规定;{} 提示信息: {}".format(" --> ".join([i for i in e.path]), e.message)
        print(msg)
        return jsonify(status=500, msg=msg)

    params_dict = prostate_cancer_params(data)

    result = ProstaticCancer(**params_dict).get_result()

    return jsonify(result)


# 中风评估
@app.route('/stroke', methods=["POST"])
def stroke():
    data = request.get_json()

    try:
        stroke_verify(data)
    except ValidationError as e:
        msg = "参数不符合规定;{} 提示信息: {}".format(" --> ".join([i for i in e.path]), e.message)
        print(msg)
        return jsonify(status=500, msg=msg)

    params_dict = stroke_params(data)

    result = StrokeTrans(**params_dict).get_result()

    return jsonify(result)


# 高血压
@app.route('/high_blood_pressure', methods=["POST"])
def high_blood_pressure():
    data = request.get_json()

    try:
        high_blood_pressure_verify(data)
    except ValidationError as e:
        msg = "参数不符合规定;{} 提示信息: {}".format(" --> ".join([i for i in e.path]), e.message)
        print(msg)
        return jsonify(status=500, msg=msg)

    params_dict = high_blood_pressure_params(data)

    result = HighBloodPressure(**params_dict).get_result()

    return jsonify(result)


# 缺血性心血管病
@app.route('/ischemic_cardiovascular_disease', methods=["POST"])
def ischemic_cardiovascular_disease():
    data = request.get_json()

    try:
        ischemic_cardiovascular_disease_verify(data)
    except ValidationError as e:
        msg = "参数不符合规定;{} 提示信息: {}".format(" --> ".join([i for i in e.path]), e.message)
        print(msg)
        return jsonify(status=500, msg=msg)

    params_dict = ischemic_cardiovascular_disease_params(data)

    result = IschemicCardiovascularDisease(**params_dict).get_result()

    return jsonify(result)


# 糖尿病
@app.route('/diabetes', methods=["POST"])
def diabetes():
    data = request.get_json()

    try:
        diabetes_verify(data)
    except ValidationError as e:
        msg = "参数不符合规定;{} 提示信息: {}".format(" --> ".join([i for i in e.path]), e.message)
        print(msg)
        return jsonify(status=500, msg=msg)

    params_dict = diabetes_params(data)

    result = Diabetes(**params_dict).get_result()

    return jsonify(result)


# 肥胖症
@app.route('/obesity', methods=["POST"])
def obesity():
    data = request.get_json()

    params_dict = obesity_params(data)

    result = Obesity(**params_dict).get_result()

    return jsonify(result)


# 代谢综合征
@app.route('/metabolic_syndrom', methods=["POST"])
def metabolic_syndrom():
    data = request.get_json()

    params_dict = metabolic_syndrom_params(data)

    result = MetabolicSyndrom(**params_dict).get_result()

    return jsonify(result)


# 骨质疏松性骨折
@app.route('/osteoporotic_fracture', methods=["POST"])
def osteoporotic_fracture():
    data = request.get_json()

    params_dict = osteoporotic_fracture_params(data)

    result = OsteoporoticFracture(**params_dict).get_result()

    return jsonify(result)


# 乳腺癌
@app.route('/breast_cancer', methods=["POST"])
def breast_cancer():
    data = request.get_json()

    params_dict = breast_cancer_params(data)

    result = BreastCancer(**params_dict).get_result()

    return jsonify(result)


# 血脂异常
@app.route('/dyslipidemia', methods=["POST"])
def dyslipidemia():
    data = request.get_json()

    params_dict = dyslipidemia_params(data)

    result = Dyslipidemia(**params_dict).get_result()

    return jsonify(result)


# 肺癌
@app.route('/lung_cancer', methods=["POST"])
def lung_cancer():
    data = request.get_json()

    params_dict = lung_cancer_params(data)

    result = LungCancer(**params_dict).get_result()

    return jsonify(result)


if __name__ == '__main__':
    # app.run(debug=True)
    app.run(host='0.0.0.0', threaded=True, port=5013 , debug=False)

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>好的,我现在需要帮助用户解决如何在Python中使用Dify沙盒引入的问题。首先,我要回顾用户提供的引用资料,尤其是引用[1]和引用[2],这些内容提到了在Dify沙盒中安装依赖和引入自定义模块的方法。用户的问题主要集中在引入,所以我要结合这些引用,给出具体的步骤。 首先,引用[1]提到通过在docker容器中找到python-requirements.txt文件,添加所需名并重启服务。这应该是主要的方法。我需要详细描述这个过程,括如何进入沙盒容器,修改依赖文件,然后重启服务。同时,用户可能使用的是本地docker环境,所以步骤需要具体到如何操作docker desktop,比如找到sandbox容器,停止服务,绑定挂载,编辑文件等。 然后,引用[2]提到通过视频教程介绍如何在代码执行节点运行pandas,并说明沙盒的原理。这里可能需要补充一些注意事项,比如沙盒环境的隔离性,每次代码执行是否持久化安装的,或者是否需要通过requirements文件来确保每次安装。另外,可能需要注意的兼容性,以及是否需要特定的版本。 用户的问题中提到了“dify shandbox”,可能是拼写错误,应该是“Dify sandbox”,所以在回答中需要确认这一点,并正确使用术语,避免混淆。同时,用户可能希望了解除了修改requirements文件之外,是否有其他方法,比如在代码中动态安装,但根据引用内容,推荐的方法应该是通过requirements文件,因为沙盒环境可能每次都会重建,动态安装可能不会持久保存。 接下来,我需要组织回答的结构,首先分步骤说明如何在docker环境中修改requirements文件,然后启动服务自动安装。然后,如果用户需要临时安装,可能需要提到在代码中使用subprocess执行pip install,但需要注意权限和沙盒的限制。此外,引用[3]提到安装Dify时的依赖项,可能需要用户确保基础环境已经正确设置,比如Python版本和必要的库,这可能影响的安装。 最后,生成相关问题需要考虑用户可能的后续疑问,比如安装失败怎么办,如何引入自定义模块,或者沙盒的网络限制等。确保问题覆盖用户可能遇到的后续问题,并引导他们进一步探索解决方案。</think>以下是在Python中通过Dify沙盒引入的完整操作指南: ### Dify沙盒引入Python的方法 1. **修改依赖文件**(推荐持久化方案) - 进入Docker Desktop → Containers标签 → 找到`sandbox`容器 - 停止sandbox服务后 → 进入Bind Mounts标签页 → 打开`dependencies`挂载目录 - 在目录中找到`python-requirements.txt`文件 - 在文件中添加需要安装的,例如: ``` pandas==2.0.3 numpy>=1.24.0 ``` 2. **重启沙盒服务** - 保存文件后启动sandbox容器 - 系统会自动执行`pip install -r requirements.txt`完成安装[^1] 3. **验证安装结果** ```python # 在代码执行节点中测试 import pandas as pd print(pd.__version__) ``` ### 临时安装方式(适用于测试) 在代码执行节点中直接运行安装命令: ```python import subprocess subprocess.check_call(["pip", "install", "package_name"]) ``` ### 注意事项 1. 沙盒环境每次重启会重置,建议优先使用`requirements.txt`方案[^2] 2. 安装前确认兼容性,避免版本冲突 3. 需要网络访问权限才能从PyPI下载
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值