rem*_*ada 29 debugging pycharm uwsgi
是否可以使用像PyCharm这样的ide来调试uwsgi应用程序?我可以通过直接从pycharm运行它们来调试基于flask的应用程序,但是甚至无法在pycharm中运行uwsgi应用程序.
我必须使用远程调试吗?是否可以使用run从pycharm中启动uwsgi应用程序?
Jul*_*hon 26
您仍然可以在uWSGI之外运行WSGI应用程序以进行开发和调试.
但有时这是不可能的,例如,如果您的应用依赖于uWSGI API功能.
据我所知,你不能使用PyCharm的"Attach to Process",因为你的WSGI应用程序运行嵌入到uWSGI中,并且没有可见的Python进程.然而,远程调试就像一个魅力.
pycharm-debug*.egg
在PyCharm发行版中找到文件.例如,在OSX上都可以找到/Applications/PyCharm.app/Contents
复制pycharm-debug-py3k.egg
到Flask应用程序旁边,或者pycharm-debug.egg
如果您使用的是Python 2.7 ,则复制
在PyCharm中,从"运行/调试配置"对话框中创建"Python远程调试"配置.在这个例子中我使用localhost
和端口4444
.该对话框将显示相应的pydevd.settrace(...)
行.
将以下代码添加到您的应用中:
import sys
sys.path.append('pycharm-debug-py3k.egg') # replace by pycharm-debug.egg for Python 2.7
import pydevd
# the following line can be copied from "Run/Debug Configurations" dialog
pydevd.settrace('localhost', port=4444, stdoutToServer=True, stderrToServer=True)
Run Code Online (Sandbox Code Playgroud)在PyCharm中,启动远程调试会话.PyCharm的控制台应该显示以下行:
Waiting for process connection...
Run Code Online (Sandbox Code Playgroud)像往常一样从uWSGI运行你的应用程序.它应该附加到调试器,PyCharm的控制台应该显示:
Connected to pydev debugger (build 139.711)
Run Code Online (Sandbox Code Playgroud)你的应用应该突破了pydevd.settrace(...)
.然后你可以像往常一样继续使用PyCharm调试器(断点等)
归档时间: |
|
查看次数: |
9463 次 |
最近记录: |