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