2014-11-13 3 views
0

У меня есть приложение колба с этой ошибкой:Python 2.7.3 Колба ImportError: модуль не назвал

ImportError: No module named annotaria, referer: http://ltw1413.web.cs.unibo.it/ 

Итак, мой корень веб-сервера:

/Главная/Интернет/ltw1413/html

Внутри папки HTML у меня есть:

  • Одна папка с именем «annotaria
  • Один файл .wsgi назван "wsgi.wsgi"

Мой файл .wsgi является:

import sys 
sys.path.insert(0, '/home/web/ltw1413/html') 
from annotaria import app as application 

Внутри моей папке "annotaria" У меня есть:

  • "Static" Папка: in stylesheet и js
  • "Templates" folder: inside html
  • "run.py": файл python, где у меня есть приложение

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) 

Как я могу найти решение? Где моя ошибка?

+1

У вас есть '__init __. Py' в папке annotaria? –

+0

Нет, у меня его нет! Только run.py с просмотрами внутри! Это ошибка? –

+2

Чтобы сделать папку в пакете Python, вы должны добавить '__init __. Py'. Он может быть пустым. После этого вы сможете импортировать оттуда. –

ответ

0

Здесь много ошибок ... annotaria не найден на пути (поэтому он говорит ... ну .. именно это).

В вашем коде вы также переопределяете app: вы импортируете его из аннотарии, а затем переопределяете его в app = Flask(...

+0

Хорошо, спасибо за ваш ответ! Я изменил путь в sys.path.вставьте (0, '/ home/web/ltw1413/html/annotaria') внутри .wsgi и сделайте комментарий «#from annotaria import app» в run.py, но не работает. Такая же ошибка: ImportError: нет модуля с именем annotaria, referer: http://ltw1413.web.cs.unibo.it/ –

0

Другие отметили отдельные ошибки, но было бы полезно понять общую картину. Прежде всего, давайте рассмотрим следующую структуру:

/home/web/ltw1413/html 
- wsgi.wsgi 
- annotaria/ 
    - __init.py__ 
    - run.py 
    - static/ 
    - templates 

Как Клаус говорил, что вам нужно __init__.py сказать Python, что annotaria действительный пакет. Но тогда ваш файл wsgi.wsgi необходимо импортировать приложение из модуля запуска:

from annotaria.run import app as application 

Кроме того, необходимо удалить этот ненужный импорт из run.py, так как вы экземпляр нового приложения:

from annotaria import app 

Поскольку есть нет приложения для импорта, вы создаете экземпляр нового приложения Flask.

И наконец, убедитесь, что приложение запускается вручную, прежде чем приступить к его развертыванию.

Смежные вопросы