2013-04-29 60 views
1

我一直在使用Aptana和pydev和IDLE来学习python2.7。除了当我遇到这个microblog教程时,它在帮助我学习方面做得很好。其中有一行from flask.ext.sqlalchemy import SQLAlchemy这导致db = SQLAlchemy(线,在Aptana没有帮助,没有文档字符串,没有什么可以去那里的例子。更糟的是,所有这一切:调整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) 

在空闲时我正在自动完成,文档字符串,我可以看到还有什么可以去那里,我可以学习。

我认为答案会存在于一个新的IDE环境中,我认为VIM可能会有所帮助。我在Windows上,所以GIT,MinGW,TortoiseHG,_vimrc,vimfiles,{autoload,bundle},pathogen.vim,jedi-vim,从源代码构建vim(由于某些原因,我一直发现没有启用python)考虑到第一次曝光并且一次全部都不是件容易的事。所以我有一个可以编辑python代码的vim,而vim中的from flask.ext.sqlalchemy import SQLAlchemy和Aptana有相同的结果,没有任何帮助。

有人可以向我解释为什么IDLE能够帮助,但Aptana/Pydev和Vim不能?有人能告诉我他们如何提供帮助吗?

这是在flask.ext .__的init __()。PY

# -*- 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挖掘到这么好!您可能需要针对Aptana的/您的VIm插件的Python支持提交一个错误。 – 2013-04-30 00:50:26

+0

而且,仅供参考,您现在可以通过跳过导入钩子并从'flask_sqlalchemy'导入而不是更好看的'flask.ext.sqlalchemy'来解决问题。 – 2013-04-30 00:51:57

+0

如果IDLE工作,您为什么要尝试使用Vim? – romainl 2013-04-30 05:31:30

回答

0

这个link解决了它,但我用C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib;C:\Python27\Lib\site-packages作为我的变量值,我删除并恢复我的解释器在pydev,似乎已经奏效。