Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:ValueError:尝试在非包中进行相对导入_Python_Flask - Fatal编程技术网

Python:ValueError:尝试在非包中进行相对导入

Python:ValueError:尝试在非包中进行相对导入,python,flask,Python,Flask,我有以下包结构 这是我在home.py中的代码 import os from flask import Blueprint, render_template, request, flash, url_for from .. import db from ..models.home import Summary from ..forms.home import SummarizerForm from ..processing.summarizer import Summarizer from

我有以下包结构

这是我在home.py中的代码

import os

from flask import Blueprint, render_template, request, flash, url_for

from .. import db
from ..models.home import Summary
from ..forms.home import SummarizerForm
from ..processing.summarizer import Summarizer
from ..helpers import flash_errors
from ..processing.newsbot import NewsBot

home = Blueprint('home', __name__)


@home.route('/', methods=['GET', 'POST'])
def index():
    summary = None
    url = ''

    form = SummarizerForm(request.form)

    if request.method == "POST" and form.validate():
        summary = Summarizer(form.text.data, form.algorithm.data, form.length.data)
        if summary.error:
            flash(summary.error)
        else:
            source_url = form.text.data if form.text.data.startswith(('http://', 'https://')) else ''
            summary_db_entry = Summary(
                summary.bullets,
                summary.highlighted_text,
                source_url=source_url)
            db.session.add(summary_db_entry)
            db.session.commit()

            url_hash = summary_db_entry.url
            url = os.path.join(request.url, url_for('home.summary_entry', url_hash=url_hash)[1:])

    flash_errors(form)

    return render_template(
        'home/index.html',
        form=form,
        summary=summary,
        url=url
    )


@home.route('/s/<url_hash>')
def summary_entry(url_hash):
    summary = Summary.query.filter_by(url=url_hash).first_or_404()
    source_url = summary.source_url

    return render_template(
        'home/summary.html',
        summary=summary,
        source_url=source_url
    )

@home.route('/about')
@home.route('/about/')
def about():
    return render_template('home/about.html')
我在包外的init.py上得到了以下错误

Traceback (most recent call last):
  File "/Users/johnsriskandarajah/Documents/summarizer-flask-app-master/tldrapp/__init__.py", line 35, in <module>
    from .views.home import home
ValueError: Attempted relative import in non-package
回溯(最近一次呼叫最后一次):
文件“/Users/johnriskandarajah/Documents/summarizer flask app master/tldrapp/_init__.py”,第35行,in
from.views.home导入主页
ValueError:尝试在非包中进行相对导入
如何修复此错误?我在网上尝试了大多数解决方案,但没有找到任何运气

完整的项目结构

共享项目完整结构。因为它在图像中看起来很好。@metmirr添加了完整的项目结构。你读过这个文档页面吗?此外,在Python3中使用绝对导入是一个很好的实践。另外,基本项目目录是否位于
sys.path
PYTHONPATH
)中?
Traceback (most recent call last):
  File "/Users/johnsriskandarajah/Documents/summarizer-flask-app-master/tldrapp/__init__.py", line 35, in <module>
    from .views.home import home
ValueError: Attempted relative import in non-package