我安装了pydev和eclipse来编译django项目。一切看起来都很好,但有一件事让我发疯了。当我更改代码中的某些内容时,我单击以保存它,并希望看到更改的效果。但是,除非我终止程序并按照下面所示重新运行,否则我看不到更改的效果。太痛苦了..。

我以前用过Pycharm,但过期了。在Pycharm中,当程序运行一次时,我不需要一次又一次地运行它。通过单击“保存”按钮,我可以很容易地看到我的更改对代码的影响。在pydev和eclipse中能看到同样的东西吗?你们也看到这个问题了吗?
发布于 2014-02-05 09:37:47
要用自动重新加载特性调试Django,必须使用远程调试器,并且必须对代码应用修补程序(就在if _name_ == "_main_":在manage.py模块中):
import pydevd
pydevd.patch_django_autoreload(
patch_remote_debugger=True, #Connect to the remote debugger.
patch_show_console=True
)因此,启动远程调试器并定期运行应该可以使Eclipse中放置的所有常规断点在Django进程中与远程调试器一起工作(必须删除自动添加到启动配置中的-noreload)。
我计划对此进行改进,以便调试器能够自动将跟踪添加到生成的进程(可能是下一个版本),但在PyDev 3.3.3上,这仍然需要执行此手动修补程序并使用远程调试器。
以上内容与调试运行有关。现在开始常规的跑步..。
当您执行run as > pydev: django时,它应该创建一个run配置(您可以在run > run配置中访问它)。然后,打开运行配置>参数并删除'--noreload‘(只留下'runserver’参数)。
然后,您可以简单地用Ctrl+F11重新运行它(如果您已经将它设置为启动先前启动的应用程序,如run.html中所示) -- (或者您也可以使用: Alt + R,T,1)运行它。
唯一的问题是,如果您在Eclipse中杀死进程,它可能会留下僵尸进程,因此,您可以使用上面所述的pydevd.patch_django_autoreload(patch_show_console=True)在每次产生一个新进程时打开一个控制台(您可以在这里执行pydevd\<- ctrl空间来向pydevd添加一个导入)。
请注意,这应该有效。如果它不起作用,请确保您没有从上一次会话开始的僵尸进程(在windows中您可以这样做: taskkill /F /IM python.exe,以确保所有的Python进程都被杀死)。
另一个注意事项(当您实际上没有自动重新加载):Ctrl+Shift+F9将杀死当前正在运行的进程并重新运行它。
https://stackoverflow.com/questions/21541800
复制相似问题