Domanda

So I'm trying to use Flask-Restless. Unfortunately I cannot import flask.ext.restless.

>>> from flask.ext.restless import APIManager
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked
  File "/Users/mrkaiser/.virtualenvs/dcenv/lib/python3.3/site-packages/flask/exthook.py", line 62, in load_module
    __import__(realname)
  File "/Users/mrkaiser/.virtualenvs/dcenv/lib/python3.3/site-packages/flask_restless/__init__.py", line 22, in <module>
    from .manager import APIManager
  File "/Users/mrkaiser/.virtualenvs/dcenv/lib/python3.3/site-packages/flask_restless/manager.py", line 17, in <module>
    from .views import API
  File "/Users/mrkaiser/.virtualenvs/dcenv/lib/python3.3/site-packages/flask_restless/views.py", line 114
    except ProcessingException, exception:

>>> import flask.ext.restless
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked
  File "/Users/mrkaiser/.virtualenvs/dcenv/lib/python3.3/site-packages/flask/exthook.py", line 62, in load_module
    __import__(realname)
  File "/Users/mrkaiser/.virtualenvs/dcenv/lib/python3.3/site-packages/flask_restless/__init__.py", line 22, in <module>
    from .manager import APIManager
  File "/Users/mrkaiser/.virtualenvs/dcenv/lib/python3.3/site-packages/flask_restless/manager.py", line 17, in <module>
    from .views import API
  File "/Users/mrkaiser/.virtualenvs/dcenv/lib/python3.3/site-packages/flask_restless/views.py", line 114
    except ProcessingException, exception:
                              ^
SyntaxError: invalid syntax

These are the packages in my current virtualenv.

$ pip freeze       
Flask==0.10.1
Flask-Admin==1.0.7
Flask-Restless==0.12.1
Flask-SQLAlchemy==1.0
Jinja2==2.7.2
MarkupSafe==0.18
SQLAlchemy==0.9.2
WTForms==1.0.5
Werkzeug==0.9.4
itsdangerous==0.23
mysql-connector-python==1.1.5
python-dateutil==2.2
six==1.5.2

I've been trying to do the tutorial (slightly modified though): author = 'mrkaiser'

import flask
from sqlalchemy import Column, Integer, String, Sequence
from sqlalchemy import ForeignKey
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import backref, relationship
from sqlalchemy.orm import scoped_session, sessionmaker
from flask.ext.restless import APIManager

app = Flask(__name__)
engine = create_engine('mysql+mysqlconnector://flask:dummypass@localhost/test', convert_unicode=True)
Session = sessionmaker(autocommit=False, autoflush=False, bind=engine)
mysession = scoped_session(Session)

Base = declarative_base()
Base.metadata.bind = engine


class Person(Base):
    __tablename__ = 'people'

    id = Column(Integer, Sequence('person_id_seq'), primary_key=True)
    first_name = Column(String(50))
    last_name = Column(String(50))
    url = Column(String(150))
    about = Column(String(400))

    def __repr__(self):
    return "Person<first_name=%s,last_name=%s,url=%s" % (self.    first_name, self.last_name, self.url)


# Create the database tables.
Base.metadata.create_all()

# Create the Flask-Restless API manager.
manager = flask.ext.restless.APIManager(app, session=mysession)

# Create API endpoints, which will be available at /api/<tablename> by
# default. Allowed HTTP methods can be specified as well.
manager.create_api(Person, methods=['GET'])


# start the flask loop
app.run()

I get the same error when I run it via the command line. Not sure what to do. Thanks!

È stato utile?

Soluzione

For those having the same issue with flask restless in python 3, upgrade to the current dev version. Issue was fixed here.

pip install git+https://github.com/jfinkels/flask-restless/
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top