Обнаружение очень сложной обертывания вокруг этой основной проблемы. Я использую python 2.7.10, чтобы следить за учебником флешки, поставляемым с использованием python 3.4. Я знаю некоторые различия между этими двумя версиями, но, похоже, знаний недостаточно для преодоления этой ситуации. У меня есть опыт любительского уровня в python. Чувствуете, что это имеет какое-то отношение к определению класса, но неспособно прибить его. И да, я прошел через решения для аналогичной ошибки, но не смог связать решение с моей проблемой.Ошибка при вызове оснований метакласса
Traceback (most recent call last):
File "manage.py", line 5, in <module>
from flask_init import app
File "/Users/sapp/Desktop/ude/flask_init/__init__.py", line 12, in <module>
from author import views
File "/Users/sapp/Desktop/ude/flask_init/author/views.py", line 3, in <module>
from form import RegisterForm
File "/Users/sapp/Desktop/ude/flask_init/author/form.py", line 5, in <module>
class RegisterForm(form):
TypeError: Error when calling the metaclass bases
module.__init__() takes at most 2 arguments (3 given)
Моя структура каталогов:
├── __init__.py
├── __init__.pyc
├── author
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── form.py
│ ├── form.pyc
│ ├── models.py
│ ├── models.pyc
│ ├── views.py
│ └── views.pyc
├── blog
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── views.py
│ └── views.pyc
├── manage.py
├── requirements.txt
├── settings.py
├── settings.pyc
├── templates
│ ├── author
│ └── base.html
└── venv
├── bin
├── include
├── lib
└── pip-selfcheck.json
manage.py:
import os, sys
from flask_script import Manager, Server
from flask_init import app
manager = Manager(app)
manager.add_command("runserver", Server(
do something
))
if __name__ == "__main__":
manager.run()
form.py:
from flask_wtf import form
from wtforms import validators, StringField, PasswordField
from wtforms.fields.html5 import EmailField
class RegisterForm(form):
pass
init.py:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object('settings')
db = SQLAlchemy(app)
import blog.views
from author import views
views.py:
from flask_init import app
from flask import render_template, redirect
from form import RegisterForm
@app.route('/register', method=('GET', 'POST'))
def register():
form = RegisterForm()
return render_template('author/register.html', form=form)
Я выбрал не помечать с wtforms, как я больше озабочен тем, что я не хватает, когда речь идет о метаклассами между 2.7 и 3.4.
Спасибо. Кроме того, в методах views.py использовался «метод» вместо «методов». Все готово! – papu