Vim 调整python自动完成行为
我一直在使用Aptana与pydev和IDLE来学习python2.7。它在帮助我学习方面做了相当大的工作,除了当我遇到这个教程时。其中有一行来自flask.ext.sqlalchemy import sqlalchemy,这导致了一个db=sqlalchemy行,在Aptana中没有帮助,没有文档字符串,也没有可能包含的示例。更糟糕的是,所有这些:Vim 调整python自动完成行为,vim,autocomplete,flask,aptana,python-idle,Vim,Autocomplete,Flask,Aptana,Python Idle,我一直在使用Aptana与pydev和IDLE来学习python2.7。它在帮助我学习方面做了相当大的工作,除了当我遇到这个教程时。其中有一行来自flask.ext.sqlalchemy import sqlalchemy,这导致了一个db=sqlalchemy行,在Aptana中没有帮助,没有文档字符串,也没有可能包含的示例。更糟糕的是,所有这些: class User(db.Model): id = db.Column(db.Integer, primary_key = True)
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可能会有所帮助。我在windows上,所以GIT、MinGW、TortoiseHG、_vimrc、vimfiles、{autoload、bundle}、pathogen.vim、jedi vim、从源代码构建vim出于某种原因,我一直发现没有启用python的vim并不容易,考虑到第一次暴露以及所有的问题。所以我有一个可以编辑python代码的vim,从flask.ext.sqlalchemy导入vim中的sqlalchemy与Aptana中的结果相同,没有帮助
有人能向我解释为什么IDLE能够提供帮助,而Aptana/Pydev和Vim不能?有人能告诉我他们能帮什么忙吗
这是烧瓶里的东西。外部。初始。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一样看到这一点?这解决了问题,但我使用了C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib;C:\Python27\Lib\site包作为我的变量值,我在pydev中删除并恢复了我的解释器,似乎已经工作了。+1因为我深入了解了这一点!您可能需要针对Aptana/您的VIm插件的Python支持提交一个bug。仅供参考,您现在可以跳过导入钩子,从flask_sqlalchemy导入,而不是从外观更好的flask.ext.sqlalchemy导入。如果IDLE有效,为什么要尝试使用VIm?