将ipdb与webapp2一起使用

时间:2016-11-07 06:49:23

标签: python django webapp2

我是django开发人员,最近开始使用webapp2项目。我的问题是我如何使用ipdb包在webapp2应用程序中进入调试模式,就像在django和flask中一样。

我的应用结构:

helloapp
    - libs/
    - stylesheets/
    - templates/
    - .gitignore
    - app.yaml
    - index.yaml
    - main.py
    - webapp2.py

我已经使用

在libs文件夹中安装了ipdb
  

sudo pip install -t github_projects / hellowebapp2 / libs ipdb

main.py

from .libs import ipdb
class HelloWebapp2(webapp2.RedirectHandler):
    def get(self):
        import ipdb; ipdb.set_trace()

错误

/home/kishan/github_projects/hellowebapp2/main.py
ERROR    2016-11-07 06:48:01,566 wsgi.py:263] 
Traceback (most recent call last):
  File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/home/kishan/github_projects/hellowebapp2/main.py", line 12, in <module>
from .libs import ipdb
ValueError: Attempted relative import in non-package

更新

我跟着这个link现在我得到了不同的错误ImportError: No module named termios :(

1 个答案:

答案 0 :(得分:2)

建议您使用virtualenvironments。使用pip安装virtualenvwrapper

pip install virtualenvwrapper

之后打开你的bashrc并插入virtualenvwrapper docs中提到的相关行。然后创建一个虚拟环境。

mkvirtualenv myapp

将所有python软件包(包括webapp2)安装到您的虚拟环境中。

pip install webapp2
pip install webob
pip install paste
pip install ipdb

这样,您的所有包都将位于一个位置(/home/username/.virtualenvs/myapp)

您可以导入所需的任何已安装的软件包,而无需相对导入的麻烦。对于缺少的termios,您可以查看SO Post