#python #flask #waitress
#python #колба #официантка
Вопрос:
Я не эксперт в python. Я пытаюсь создать образец веб-приложения, и я мог бы запустить его с помощью flask. Однако после его упаковки и попытки установить его с помощью waitress я получаю сообщение об ошибке —
Модуль не назван helloweb.py (это мое веб-приложение). Я не уверен, как устранить эту проблему. Любые указатели были бы великолепны. Все остальные ответы на stack overflow мне не очень помогли.
Вот мое веб-приложение —
helloweb.py —
import datetime
from flask import Flask
from flask_api import status
import json
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello!'
@app.route('/xyz')
def display_status():
healthstatus=json.dumps({'status': status.HTTP_200_OK})
return healthstatus
Я попробовал следующее, и это сработало —
FLASK_APP=helloweb.py
FLASK_RUN_PORT=8080
flask run
Но попытка перенести его на рабочий сервер WSGI waitress у меня не работает. Я сделал следующее, создал setup.py файл —
import setuptools
from setuptools import setup
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="mydomain-webapp-myusername", # Replace with your own username
version="0.0.1",
author="first.last",
author_email="someone@gmail.com",
description="A small flask package",
long_description="This is a web app",
long_description_content_type="text/markdown",
url="https://github.com/pypa/sampleproject",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.6',
)
и я создал ЛИЦЕНЗИЮ, README.md файл, инициализирующий файл.py,waitress_server.py файл в той же папке, что и исходный файл (helloweb.py ). Я не уверен, почему я вижу следующую ошибку при запуске —
$ waitress-serve --call 'helloweb:app'
Error: Bad module 'helloweb'
Usage:
waitress-serve [OPTS] MODULE:OBJECT
.........
........
..........
There was an exception (ImportError) importing your module.
It had these arguments:
1. No module named flask_api
Я могу импортировать flask_api в оболочку python, а также helloweb.py , поэтому я не уверен, как это исправить. Как мне устранить эту ошибку?
Комментарии:
1. Что вы ожидаете
from flask_api
сделать?2. Я использую этот модуль для отображения кода состояния HTTP.
3. Конечно. Однако, согласно ошибке, этот модуль недоступен
4. Да, именно поэтому я упомянул, что могу импортировать модуль в оболочку python в той же среде. Смотрите результат ниже — myprompt $ python Python 3.8.5 (v3.8.5:580fbb018f, июль 20 2020, 12:11:27) [ Clang 6.0 (clang-600.0.57)] в darwin введите «справка», «авторское право», «кредиты» или «лицензия» для получения дополнительной информации. >>> импортировать flask_api >>>
5. @Onecricket, спасибо за помощь, я решил обе проблемы — вместо использования waitress я использую gunicorn, а для flask API мне нужно было изменить переменную PATH, чтобы указывать на пакеты сайтов python.