linux python2.7 post_linux python flask restful调用post方法报错no such file

from __future__ import unicode_literals

from flask import Flask

from flask_restful import reqparse,Api, Resource

from flask import Flask,jsonify,request

from flask import abort

from flask import make_response,Response

import json

#########测试==========

#####放在11.41库

import jieba

import os

import jieba.analyse

app = Flask(__name__)

app.debug = True

app.config.update(RESTFUL_JSON=dict(ensure_ascii=False))

api = Api(app)

os.chdir('/home/nlp/model/IF')

from sklearn.externals import joblib

clf = joblib.load("model.m")

vec = joblib.load("vec.m")

transformer = joblib.load("tfidf.m")

ch2 = joblib.load("ch2.m")

@app.route('/')

def hello_world():

return 'hello world'

@app.route('/add_task/', methods=['POST'])

def add_task():

url = request.json['siteDomain']

if ('guba' in url) or ('直播答题' in 'text'):

lable = 0

else:

text = request.json['content']

title = request.json['title']

content = title + text

word_cut = jieba.lcut(content.strip(), cut_all = False)

news1 = []

news1.append(' '.join(word_cut))

x_test11 = vec.transform(news1)

x_test21 = transformer.transform(x_test11)

X_test1 = ch2.transform(x_test21)

y1 = clf.predict(X_test1)

if y1[0] == 0:

lable = 0

else:

lable = 1

rt = {'number':lable}

return json.dumps(rt)

if __name__ == '__main__':

app.run(host = '0.0.0.0')

运行以上代码报错(/usr/bin/python3: can't open file 'RFIFL.py': [Errno 2] No such file or directory)

具体错误如下

/usr/local/python/lib/python3.6/site-packages/sklearn/base.py:311: UserWarning: Trying to unpickle estimator SVC from version 0.18.1 when using version 0.19.1. This might lead to breaking code or invalid results. Use at your own risk.

UserWarning)

/usr/local/python/lib/python3.6/site-packages/sklearn/base.py:311: UserWarning: Trying to unpickle estimator GridSearchCV from version 0.18.1 when using version 0.19.1. This might lead to breaking code or invalid results. Use at your own risk.

UserWarning)

/usr/local/python/lib/python3.6/site-packages/sklearn/base.py:311: UserWarning: Trying to unpickle estimator CountVectorizer from version 0.18.1 when using version 0.19.1. This might lead to breaking code or invalid results. Use at your own risk.

UserWarning)

/usr/local/python/lib/python3.6/site-packages/sklearn/base.py:311: UserWarning: Trying to unpickle estimator TfidfTransformer from version 0.18.1 when using version 0.19.1. This might lead to breaking code or invalid results. Use at your own risk.

UserWarning)

/usr/local/python/lib/python3.6/site-packages/sklearn/base.py:311: UserWarning: Trying to unpickle estimator SelectKBest from version 0.18.1 when using version 0.19.1. This might lead to breaking code or invalid results. Use at your own risk.

UserWarning)

* Serving Flask app "RFIFL" (lazy loading)

* Environment: production

WARNING: Do not use the development server in a production environment.

Use a production WSGI server instead.

* Debug mode: on

* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

* Restarting with stat

/usr/bin/python3: can't open file 'RFIFL.py': [Errno 2] No such file or directory

但是当我把代码换成这样的

from __future__ import unicode_literals

from flask import Flask

from flask_restful import reqparse,Api, Resource

from flask import Flask,jsonify,request

from flask import abort

from flask import make_response,Response

import json

#########测试==========

#####放在11.41库

import jieba

import os

import jieba.analyse

app = Flask(__name__)

app.debug = True

app.config.update(RESTFUL_JSON=dict(ensure_ascii=False))

api = Api(app)

@app.route('/')

def hello_world():

return 'hello world'

@app.route('/add_task/', methods=['POST'])

def add_task():

os.chdir('/home/nlp/model/IF')

from sklearn.externals import joblib

clf = joblib.load("model.m")

vec = joblib.load("vec.m")

transformer = joblib.load("tfidf.m")

ch2 = joblib.load("ch2.m")

url = request.json['siteDomain']

if ('guba' in url) or ('直播答题' in 'text'):

lable = 0

else:

text = request.json['content']

title = request.json['title']

content = title + text

word_cut = jieba.lcut(content.strip(), cut_all = False)

news1 = []

news1.append(' '.join(word_cut))

x_test11 = vec.transform(news1)

x_test21 = transformer.transform(x_test11)

X_test1 = ch2.transform(x_test21)

y1 = clf.predict(X_test1)

if y1[0] == 0:

lable = 0

else:

lable = 1

rt = {'number':lable}

return json.dumps(rt)

if __name__ == '__main__':

app.run(host = '0.0.0.0')

os.chdir('/home/nlp/model/IF')

from sklearn.externals import joblib

clf = joblib.load("model.m")

vec = joblib.load("vec.m")

transformer = joblib.load("tfidf.m")

ch2 = joblib.load("ch2.m")

这段代码一开始放在post方法外程序是不能正常运行的,当放在post方法下的函数里,程序就可以正常运行,请问这是为什么?

我想把这段代码放在post方法外,不想每次调post方法都加载一遍这些文件,想放在缓存里供post方法直接调用,该怎么操作?求大佬告知。好人一生平安

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值