Я использую Aptana с pydev и IDLE для изучения python2.7. И он проделал справедливую работу, помогая мне учиться, кроме тех случаев, когда я наткнулся на это руководство microblog. В нем есть строка from flask.ext.sqlalchemy import SQLAlchemy
, которая ведет к линии db = SQLAlchemy(
, в Aptana нет никакой помощи, ни строки doc, ни примеров того, что может туда пойти. Хуже того, все это:Настройка автоматического заполнения python
class User(db.Model):
id = db.Column(db.Integer, primary_key = True)
nickname = db.Column(db.String(64), index = True, unique = True)
email = db.Column(db.String(120), index = True, unique = True)
role = db.Column(db.SmallInteger, default = ROLE_USER)
Является красным, не знаю, как разделить его, чтобы узнать его синтаксис. Однако, когда я делаю:
from flask.ext.sqlalchemy import SQLAlchemy
from flask import Flask
app = Flask(__name__)
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer,primary_key = True)
В IDLE, я получаю автозавершение, док строк, я могу увидеть, что еще может пойти туда, я могу узнать.
Я думал, что ответ будет существовать с новой средой, подобной среде IDE, и я понял, что VIM может быть полезен. Я нахожусь в окнах, поэтому GIT, MinGW, TortoiseHG, _vimrc, vimfiles, {autoload, bundle}, pathogen.vim, jedi-vim, build vim из исходного кода (по какой-то причине, которые я продолжал находить, не было включено python) было непростой задачей, учитывая возможность первого раза и все сразу. Поэтому у меня есть vim, который может редактировать код python, а from flask.ext.sqlalchemy import SQLAlchemy
в vim имеет тот же результат, что и в Aptana, без помощи.
Может кто-нибудь объяснить мне, почему IDLE может помочь, но Aptana/Pydev и Vim не могут? Может ли кто-нибудь показать мне, как они могут помочь?
Это то, что находится в flask.ext .__ INIT __(). Ру
# -*- coding: utf-8 -*-
"""
flask.ext
~~~~~~~~~
Redirect imports for extensions. This module basically makes it possible
for us to transition from flaskext.foo to flask_foo without having to
force all extensions to upgrade at the same time.
When a user does ``from flask.ext.foo import bar`` it will attempt to
import ``from flask_foo import bar`` first and when that fails it will
try to import ``from flaskext.foo import bar``.
We're switching from namespace packages because it was just too painful for
everybody involved.
:copyright: (c) 2011 by Armin Ronacher.
:license: BSD, see LICENSE for more details.
"""
def setup():
from ..exthook import ExtensionImporter
importer = ExtensionImporter(['flask_%s', 'flaskext.%s'], __name__)
importer.install()
setup()
del setup
Так что в моем случае от flask.ext.sqlalchemy импорта SQLAlchemy переводит «смотреть на сайте-пакеты для flask_sqlalchemy.py и в этом файле найти SQLAlchemy ", который в данном случае является большим классом. Как я могу заставить Aptana и vim видеть это, как делает IDLE?
+1 для копания в этом так хорошо! Возможно, вам понадобится указать ошибку для поддержки Python плагина Aptana's/Your VIm для этого. –
И, просто FYI, вы можете обойти проблему на данный момент, пропуская импортный крюк и импортируя из 'flask_sqlalchemy' вместо красивой' flask.ext.sqlalchemy'. –
Если IDLE работает, почему вы пытаетесь использовать Vim? – romainl