Python Emacs elpy和web2py
我通过从Melpa安装elpy来设置Python代码完成,并且它似乎(大部分)如广告所示工作正常 不过,我希望它也能完成Web2PyAPI,我认为实现这一点的最佳方法是使用web2py shell,而不是普通的shell 0次尝试 谷歌搜索Emacs、web2py和autocompletion并没有产生任何有用的结果 第一次尝试 因此,我添加到我的Python Emacs elpy和web2py,python,emacs,web2py,code-completion,elpy,Python,Emacs,Web2py,Code Completion,Elpy,我通过从Melpa安装elpy来设置Python代码完成,并且它似乎(大部分)如广告所示工作正常 不过,我希望它也能完成Web2PyAPI,我认为实现这一点的最佳方法是使用web2py shell,而不是普通的shell 0次尝试 谷歌搜索Emacs、web2py和autocompletion并没有产生任何有用的结果 第一次尝试 因此,我添加到我的~/.emacs.d/init.el文件中 (setq python-shell-interpreter-args "/path/to/
~/.emacs.d/init.el
文件中
(setq python-shell-interpreter-args
"/path/to/web2py/web2py.py --plain --import_models --shell=myapp")
。。。不起作用
第二次尝试
接下来,我意识到我可能需要定制elpyrpcpython命令
变量
所以我写了这个~/bin/rpc-web2py
脚本,比如:
#!/bin/sh
# note: the $@ need to relate to python becase elpy what's to pass `-W` to it.
python2.7 "$@" /path/to/web2py/web2py.py --shell=myapp --plain --import_models
并将Elpy-Rpc-Python命令自定义为Other:~/bin/Rpc-web2py
。。。仍然没有“db”完成
帮助
我是否以正确的方式处理这个问题?我不致力于任何特定的代码完成解决方案,如果需要,我愿意拥有一个全新的.emacs.d
有人能有类似的工作设置吗?我的一个明显疏忽是,我没有将
/path/to/web2py
添加到我的$PYTHONPATH
环境变量中,正如Baris的博客所说
答案的另一部分来自马西莫·迪·皮耶罗,他说:
这些IDE(除了那些支持web2py的IDE)的一般问题是,它们不理解执行模型和控制器的上下文,因此自动完成无法开箱即用
要使自动完成工作正常,一般技巧包括编辑模型和控制器并添加以下代码:
导入块不会更改逻辑,因为它从未执行过,但它会强制IDE对其进行解析,并了解全局名称空间中的对象来自何处(Glion模块),从而使自动完成工作
如果你依赖模型中的变量(比如数据库定义),你可以考虑这样添加到列表:
也可以考虑导入所有模型。
虽然这与其说是一个解决方案,不如说是一个解决方案,但我会接受它,而这已经作为elpy的一部分出现,是使这个解决方案变得微不足道的逻辑工具如果有人能想出一些解决办法,我会欣然接受这个答案。很好的解决办法。谢谢分享!
if False:
from gluon import *
request = current.request
response = current.response
session = current.session
cache = current.cache
T = current.T
from db import *
if False:
from gluon import *
from db import * #repeat for all models
from menu import *