'AttributeError:模块'__main__'没有属性'__package __'

时间:2019-08-19 15:11:07

标签: python flask deployment web-deployment flask-restful

我正在尝试构建flask-web API。当我尝试运行app.py代码时,出现此错误,请参考下面提到的代码。我是否需要安装一些软件包才能将“ 软件包”插入“ 主要”?

我也尝试在jupyter笔记本电脑,spyder和Google Colab等不同平台上运行,但是它不起作用,并且出现类似问题。

这是我的app.py代码,其中出现错误:

from flask import Flask, request, jsonify, render_template
import pickle

app = Flask(__name__)
model = pickle.load(open('model.pkl', 'rb'))

@app.route('/')
def home():
    return render_template('index.html')

@app.route('/predict',methods=['POST'])
def predict():
    '''
    For rendering results on HTML GUI
    '''
    int_features = [int(x) for x in request.form.values()]
    final_features = [np.array(int_features)]
    prediction = model.predict(final_features)

    output = round(prediction[0], 2)

    return render_template('index.html', prediction_text='Employee Salary should be $ {}'.format(output))

@app.route('/predict_api',methods=['POST'])
def predict_api():
    '''
    For direct API calls trought request
    '''
    data = request.get_json(force=True)
    prediction = model.predict([np.array(list(data.values()))])

    output = prediction[0]
    return jsonify(output)

if __name__ == "__main__":
    app.run(debug=True)

这是我收到的错误消息:

* Serving Flask app "__main__" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Restarting with stat
Traceback (most recent call last):

  File "<ipython-input-21-3add8626fce0>", line 36, in <module>
    app.run(debug=True)

  File "C:\Users\ishwo\Anaconda3\lib\site-packages\flask\app.py", line 990, in run
    run_simple(host, port, self, **options)

  File "C:\Users\ishwo\Anaconda3\lib\site-packages\werkzeug\serving.py", line 1007, in run_simple
    run_with_reloader(inner, extra_files, reloader_interval, reloader_type)

  File "C:\Users\ishwo\Anaconda3\lib\site-packages\werkzeug\_reloader.py", line 332, in run_with_reloader
    sys.exit(reloader.restart_with_reloader())

  File "C:\Users\ishwo\Anaconda3\lib\site-packages\werkzeug\_reloader.py", line 159, in restart_with_reloader
    args = _get_args_for_reloading()

  File "C:\Users\ishwo\Anaconda3\lib\site-packages\werkzeug\_reloader.py", line 76, in _get_args_for_reloading
    if __main__.__package__ is None:

AttributeError: module '__main__' has no attribute '__package__'}

0 个答案:

没有答案