Я новичок в области кодирования.Я использовал инструкции по следующей ссылке для создания своего веб-приложения, и оно работает на моем локальном компьютере без проблем.
https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps
После того, как я развернул его на своем удаленном сервере, яполучил ошибку 500.Журнал ошибок показывает:
[Tue Oct 09 02:42:27.517360 2018] [wsgi:error] [pid 6257:tid 140375628965632] [client 99.111.155.184:22844] mod_wsgi (pid=6257): Target WSGI script '/var/www/PersonalApp/personalapp.wsgi' cannot be loaded as Python module.
[Tue Oct 09 02:42:27.517374 2018] [wsgi:error] [pid 6257:tid 140375628965632] [client 99.111.155.184:22844] mod_wsgi (pid=6257): Exception occurred processing WSGI script '/var/www/PersonalApp/personalapp.wsgi'.
[Tue Oct 09 02:42:27.517397 2018] [wsgi:error] [pid 6257:tid 140375628965632] [client 99.111.155.184:22844] Traceback (most recent call last):
[Tue Oct 09 02:42:27.517423 2018] [wsgi:error] [pid 6257:tid 140375628965632] [client 99.111.155.184:22844] File "/var/www/PersonalApp/personalapp.wsgi", line 8, in <module>
[Tue Oct 09 02:42:27.517460 2018] [wsgi:error] [pid 6257:tid 140375628965632] [client 99.111.155.184:22844] from PersonalApp import app
[Tue Oct 09 02:42:27.517469 2018] [wsgi:error] [pid 6257:tid 140375628965632] [client 99.111.155.184:22844] File "/var/www/PersonalApp/PersonalApp/__init__.py", line 6, in <module>
[Tue Oct 09 02:42:27.517482 2018] [wsgi:error] [pid 6257:tid 140375628965632] [client 99.111.155.184:22844] from wtforms import Form, StringField, PasswordField, TextAreaField, validators
[Tue Oct 09 02:42:27.517518 2018] [wsgi:error] [pid 6257:tid 140375628965632] [client 99.111.155.184:22844] ImportError: No module named wtforms
Project Struture:
|--------PersonalApp
|----------------PersonalApp
|-----------------------static
|-----------------------templates
|-----------------------venv
|-----------------------__init__.py
|----------------personalapp.wsgi
personalapp.wsgi
#! /usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/PersonalApp/")
from PersonalApp import app as application
__ init__.py (частичный код)
from datetime import datetime
from sqlalchemy.sql.functions import now
from flask import Flask, render_template, flash, redirect, url_for, request
from flask_sqlalchemy.model import Model
from flask_sqlalchemy import SQLAlchemy
from wtforms import Form, StringField, TextAreaField, validators
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret_key'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Следующие параметры одинаковы как для локального, так и для удаленного:
Server version: Apache/2.4.18 (Ubuntu)
Python 2.7.12
server
Package Version
---------------- -------
Click 7.0
Flask 1.0.2
Flask-SQLAlchemy 2.3.2
Flask-WTF 0.14.2
itsdangerous 0.24
Jinja2 2.10
MarkupSafe 1.0
pip 18.1
psycopg2 2.7.5
setuptools 40.4.3
SQLAlchemy 1.2.12
Werkzeug 0.14.1
wheel 0.32.1
WTForms 2.2.1
VERSION="16.04.5 LTS (Xenial Xerus)"
Единственное различие между этими двумя:
сервер
Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-1069-aws x86_64)
локальный компьютер
Linux Lite 3.8 (GNU/Linux 4.4.0-138-generic i686)Linux Lite 3.8 (GNU/Linux 4.4.0-138-generic i686)
Я не уверен, что мне не хватает, так как он работает на моей локальной машине.Любое руководство будет с благодарностью.Заранее спасибо!