AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1056138
Accepted
Yasir Shahzad
Yasir Shahzad
Asked: 2021-03-07 06:52:14 +0800 CST2021-03-07 06:52:14 +0800 CST 2021-03-07 06:52:14 +0800 CST

ModuleNotFoundError:没有名为“主”的模块

  • 772

我曾尝试在 Google App Engine 柔性环境中部署烧瓶应用程序。部署应用程序时,出现以下错误。

raceback (most recent call last):
  File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process      
    self.load_wsgi()
  File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
    return self.load_wsgiapp()
  File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp        
    return util.import_app(self.app_uri)
  File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
    mod = importlib.import_module(module)
  File "/opt/python3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'main'
[2021-03-06 14:39:52 +0000] [8] [INFO] Worker exiting (pid: 8)
[2021-03-06 14:39:52 +0000] [1] [INFO] Shutting down: Master
[2021-03-06 14:39:52 +0000] [1] [INFO] Reason: Worker failed to boot.

这是 requirements.txt 文件。

backcall==0.2.0
click==7.1.2
cloudpickle==1.6.0
colorama==0.4.4
cycler==0.10.0
decorator==4.4.2
Flask==1.1.2
Flask-Cors==3.0.10
ipython==7.21.0
ipython-genutils==0.2.0
itsdangerous==1.1.0
jedi==0.18.0
Jinja2==2.11.3
joblib==1.0.1
kiwisolver==1.3.1
llvmlite==0.35.0
MarkupSafe==1.1.1
matplotlib==3.2.0
numba==0.52.0
numpy==1.20.1
pandas==1.2.3
parso==0.8.1
pickle-mixin==1.0.2
pickleshare==0.7.5
Pillow==8.1.1
prompt-toolkit==3.0.16
Pygments==2.8.0
pyparsing==2.4.7
PyQt5==5.15.3
PyQt5-Qt==5.15.2
PyQt5-sip==12.8.1
python-dateutil==2.8.1
pytz==2021.1
scikit-learn==0.24.1
scipy==1.6.1
shap==0.39.0
six==1.15.0
sklearn==0.0
slicer==0.0.7
threadpoolctl==2.1.0
tqdm==4.58.0
traitlets==5.0.5
wcwidth==0.2.5
Werkzeug==1.0.1
gunicorn==20.0.4

和 app.yaml 文件

runtime: python
env: flex
entrypoint: gunicorn -b:$PORT main:app

runtime_config:
  python_version: 3.7

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 2

我还在下面附上了我的 app.py 文件。

from flask import Flask, request, render_template, send_from_directory
from flask_cors import CORS
from ml import preprocess, predict

app = Flask(__name__)
CORS(app)

@app.route('/assets/<path:path>')
def send_js(path):
    return send_from_directory('static/assets', path)


@app.route('/', methods = ['POST', 'GET'])
def index():
    if request.method == 'POST':
        prediction_dict = preprocess.transform(request.data)
        
        scaled = preprocess.scaler([list(prediction_dict.values())])

        return preprocess.dump({
            'message': predict.do_predict(scaled).tolist()[0], 
            'review': predict.do_cause(prediction_dict)
        })
    else:
        return render_template('index.html')

@app.route('/status', methods = ['GET']) 
def status(): 
    return preprocess.dump({'accuracy': 95.02}); 

if __name__ == '__main__':
    # This is used when running locally. Gunicorn is used to run the
    # application on Google App Engine. See entrypoint in app.yaml.
    app.run(host='127.0.0.1', port=8080, debug=True)
google-app-engine
  • 1 1 个回答
  • 6705 Views

1 个回答

  • Voted
  1. Best Answer
    mary
    2021-03-07T12:07:29+08:002021-03-07T12:07:29+08:00

    这一行表示要在名为 main.py 的模块中查找名为 app 的变量:
    entrypoint: gunicorn -b:$PORT main:app

    您可以将 app.py 重命名为 main.py 或将此行更新为:
    entrypoint: gunicorn -b:$PORT app:app

    另见:https ://docs.gunicorn.org/en/stable/run.html

    • 1

相关问题

  • 如果您失去了 Google Apps 的管理员权限,如何恢复?

  • 云有多大?[关闭]

  • 谷歌应用引擎中的 joomla

  • 无需短信即可注册 Google AppEngine?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve