首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs elpy和web2py

Emacs elpy和web2py
EN

Stack Overflow用户
提问于 2015-11-22 16:03:02
回答 1查看 294关注 0票数 1

我已经通过从Melpa安装elpy来安装Python代码完成,而且它似乎像广告中所宣传的那样起作用(主要是)。

不过,我希望它也能完成web2py API,并且我认为实现这一点的最好方法是使用web2py shell,而不是普通的shell。

第0次尝试

谷歌Emacs,web2py和自动完成没有产生任何有用的结果。

第一次尝试

所以我在我的~/.emacs.d/init.el文件中添加了

代码语言:javascript
复制
(setq python-shell-interpreter-args 
      "/path/to/web2py/web2py.py --plain --import_models --shell=myapp")

..。不起作用。

第二次尝试

埃尔皮博士之后,我意识到我可能需要自定义elpy-rpc-python-command变量。

因此,我编写了这个~/bin/rpc-web2py脚本,如:

代码语言:javascript
复制
#!/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命令定制为其他命令:~/bin/rpc-web2py

..。还是没有“分贝”完成。

help

我用正确的方法处理这个问题吗?我不致力于任何具体的代码完成解决方案,并愿意有一个新的.emacs.d,如果需要。

有人能有类似的工作安排吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-24 07:32:32

我有一个明显的疏忽,那就是我没有将/path/to/web2py添加到我的$PYTHONPATH环境变量中,正如Baris的根据密码..。博客所指出的那样。

答案的另一部分来自马西莫·迪·皮耶罗( Massimo Di Pierro )的Web2py书,他说:

通用IDEs在web2py中的应用 这些IDE的一般问题(支持web2py的IDE除外)是,它们不了解执行模型和控制器的上下文,因此自动完成不符合实际情况。 要使自动完成工作,一般技巧是编辑模型和控制器,并添加以下代码:

代码语言:javascript
复制
if False:
    from gluon import *
    request = current.request
    response = current.response
    session = current.session
    cache = current.cache
    T = current.T

导入块不会改变逻辑,因为它从未执行过,但它强制IDE解析它并了解全局命名空间中的对象来自何处(胶子模块),从而使自动完成工作。 如果您依赖于模型中的变量(例如数据库定义),可以考虑向列表中添加如下内容:

代码语言:javascript
复制
from db import *

您还可以考虑导入所有模型。

代码语言:javascript
复制
if False:  
    from gluon import *
    from db import *  #repeat for all models
    from menu import *

虽然这更多地是一种解决方案而不是解决方案,但我将接受它,而已经作为elpy的一部分的雅斯尼伯是使这个解决方案变得微不足道的逻辑工具。

如果有人想出一些不那么变通的解决办法,我会很高兴地接受这个答案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33856897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档