将 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
我是 django 开发人员,最近开始使用 webapp2 项目。我的问题是如何像在 django 和 flask 中一样使用 ipdb 包在 webapp2 应用程序中进入调试模式。
我的应用结构:
helloapp
- libs/
- stylesheets/
- templates/
- .gitignore
- app.yaml
- index.yaml
- main.py
- webapp2.py
我已经使用
在 libs 文件夹中安装了 ipdbsudo 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