将 ipdb 与 webapp2 一起使用

Use ipdb with webapp2

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

我的应用结构:

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 :(

建议您使用 pip virtualenvironments. Install virtualenvwrapper

pip install virtualenvwrapper

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

mkvirtualenv myapp

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

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

这样一来,您的所有包裹都将集中在一个位置 (/home/username/.virtualenvs/myapp)

并且您可以导入任何您想要的已安装包,而不会因相关导入而头疼。对于缺少的 termios,您可以查看 SO Post