ImportError: нет модуля с именем flask.ext.restless

Я пытаюсь создать конечные точки Restful для базы данных sqlalchemy. Но по какой-то причине он не может найти расширение Flask Restless.

Когда я запускаю файл, я получаю эту ошибку:

Traceback (most recent call last):
  File "./rest1.py", line 7, in <module>
    import flask.ext.restless
  File "/home/ian/git_dev/flask_rest/test2/flask/local/lib/python2.7/site-packages/flask/exthook.py", line 86, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named flask.ext.restless

У меня установлены Flask, Flask-Restless и SQLalchemy, но они все равно не работают.

Django==1.6.5
Flask==0.10.1
Flask-Restless==0.13.1
Jinja2==2.7.2
MarkupSafe==0.23
PAM==0.4.2
Pillow==2.3.0
SQLAlchemy==0.9.4

Это мой код:

#!flask/bin/python
#!/usr/bin/python
# -*- mode: python -*-

from flask import Flask
from sqlalchemy import Column, Date, DateTime, Float, Integer, Unicode
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
import flask.ext.restless

app = Flask(__name__)
engine = create_engine('sqlite:////tmp/testdb.sqlite', convert_unicode=True)
Session = sessionmaker(autocommit=False, autoflush=False, bind=engine)
mysession = scoped_session(Session)

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

class Test_Table(Base):
    __tablename__ = 'plot'
    id = Column(DateTime, primary_key=True)
    value = Column(Integer)
    type = Column(Unicode)
    max = Column(Integer)
    min = Column(Integer)


Base.metadata.create_all()

manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db=db)

manager.create_api(Test_Table, methods=['GET', 'POST', 'PUT' 'DELETE'])

app.run()

Я также пробовал Flask-Restful как в виртуальной среде, так и за ее пределами. Но я все равно получаю тот же результат.


person user2657669    schedule 01.06.2014    source источник
comment
Вы должны убедиться, что версия Python, которую вы используете для запуска скрипта, может видеть Flask-Restless. Какой бинарник вы используете? У вас должен быть двоичный файл pip в той же папке.   -  person dirn    schedule 01.06.2014


Ответы (2)


Вы можете попробовать переустановить pip install --upgrade --force-reinstall flask_restless

Если это не работает:

установите flask_restless 0.14-dev с github.

git clone https://github.com/jfinkels/flask-restless

 cd flask-restless
 pip install -r requirements-doc.txt

Используйте import flask_restless

   flask_restless.__version__
   '0.13.1'

чтобы убедиться, что python видит правильную версию flask_restless.

У вас также, кажется, есть каталог "flask" на вашем пути:

'/home/ian/git_dev/flask_rest/test2/flask/local/lib/python2.7/site-packages/flask/exthook.py'

которые могут конфликтовать с вашим импортом.

person Padraic Cunningham    schedule 01.06.2014
comment
какие версии flask и flask_restless возвращаются, когда вы используете flask.__version__ и flask_restless.__version__? - person Padraic Cunningham; 01.06.2014
comment
колба: 0.10.1 и колба-беспокойная: 0.13.1 - person user2657669; 01.06.2014
comment
можете ли вы импортировать flask.ext.restless с помощью системного python, у вас есть папка с именем flask? - person Padraic Cunningham; 01.06.2014
comment
Исправлено, это было потому, что на моем пути был каталог фляги. Большое спасибо - person user2657669; 02.06.2014
comment
Привет @ user2657669, не могли бы вы рассказать нам больше о том, как вы решаете эту проблему? - person Panos Angelopoulos; 04.03.2016

Вы можете установить последнюю версию flask-restless прямо с Github:

pip install git+https://github.com/jfinkels/flask-restless.git

Как обычно, перед установкой убедитесь, что вы находитесь в правильной среде, если вы используете что-то вроде virtualenv.

person kip2    schedule 29.05.2018