我有一个带有此错误的Flask应用程序:
ImportError: No module named annotaria, referer: http://ltw1413.web.cs.unibo.it/
所以,我在Web服务器上的根目录是:
/家庭/网络/ ltw1413 / HTML
我在html文件夹里面:
我的文件.wsgi是:
import sys
sys.path.insert(0, '/home/web/ltw1413/html')
from annotaria import app as application
在我的文件夹" annotaria"我有:
run.py是这样的:
from pydoc import html
from annotaria import app
from flask import Flask, render_template, redirect, request
import json
import urllib2
import urlparse
import re
import string
import os
from SPARQLWrapper import SPARQLWrapper, JSON
from rdflib import Graph, BNode, Literal, Namespace
from time import strftime
import urllib2
import BeautifulSoup
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/index.html')
def reloader():
return render_template('index.html')
# other app.route()...
if __name__ == '__main__':
app.run(debug=True)
我如何找到解决方案?我的错误在哪里?
答案 0 :(得分:0)
这里有很多错误......
路径上找不到annotaria
(这就是为什么它说......好吧......)。
在您的代码中,您还要重新定义app
:从annotaria导入它,然后在app = Flask(..
中重新定义它。
答案 1 :(得分:0)
其他人提到了个别错误,但了解整体情况会有所帮助。首先,让我们假设以下结构:
/home/web/ltw1413/html
- wsgi.wsgi
- annotaria/
- __init.py__
- run.py
- static/
- templates
就像Klaus提到的那样,你需要__init__.py
告诉Python annotaria是一个有效的包。但是,您的wsgi.wsgi
文件需要从运行模块导入应用程序:
from annotaria.run import app as application
您还需要从run.py
中删除此不必要的导入,因为您实例化了一个新的应用程序:
from annotaria import app
因为没有要导入的应用程序,所以您实例化一个新的Flask应用程序。
最后,确保在开始部署应用程序之前手动运行该应用程序。