2013-04-29 3 views
1

Я использую 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?

+0

+1 для копания в этом так хорошо! Возможно, вам понадобится указать ошибку для поддержки Python плагина Aptana's/Your VIm для этого. –

+0

И, просто FYI, вы можете обойти проблему на данный момент, пропуская импортный крюк и импортируя из 'flask_sqlalchemy' вместо красивой' flask.ext.sqlalchemy'. –

+0

Если IDLE работает, почему вы пытаетесь использовать Vim? – romainl

ответ

0

Этот link решил это, но я использовал C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib;C:\Python27\Lib\site-packages как мое значение переменной, и я удалил и восстановил свой интерпретатор в pydev, похоже, сработал.

Смежные вопросы