我正在尝试在PyCharm(在windows主机上)和运行django应用程序的debian虚拟主机之间进行调试。说明中说要安装egg,添加导入,然后调用命令。我想这些事情需要在debian主机上完成?
好吧,那么,我应该把这两行放在哪个文件中?
from pydev import pydevd
pydevd.settrace('not.local', port=21000, stdoutToServer=True, stderrToServer=True)
我试着把它放在背景里,但是得到了这样的东西。。。
File "/django/conf/__init__.py", line 87, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/settings.py", line 10, in <module>
pydevd.settrace('dan.local', port=21000, stdoutToServer=True, stderrToServer=True)
File "/pycharm-debug.egg/pydev/pydevd.py", line 1079, in settrace
debugger.connect(host, port)
File "/pycharm-debug.egg/pydev/pydevd.py", line 241, in connect
s = StartClient(host, port)
File "/pycharm-debug.egg/pydev/pydevd_comm.py", line 362, in StartClient
sys.exit(1)
SystemExit: 1
而pycharm只是坐在那里“等待连接”
实际上,它只是一个便条,但包含一些可以节省时间的信息。
pip install pydevd
为我在ubuntu和centos 6上工作ssh-R 8081:localhost:8081 user@remote-server.com
这允许远程代码连接到本地主机上侦听的计算机:8081
似乎出于某种原因,调试器无法使用PyCharm连接到您的windows主机。你没有别的短信吗?如果没有,请尝试再次运行它,但使用sterrToServer=false。这可能显示了它不连接的真正原因。
PyCharm(或您选择的ide)充当“服务器”,您的应用程序是“客户机”;因此您首先启动服务器-告诉ide“调试”,然后运行客户机-这是一些包含
settrace
语句的代码。当您的python代码点击settrace
时,它会连接到服务器-pycharm-并开始向它提供调试数据。要做到这一点:
1。将
pydev
库复制到远程计算机所以我不得不将文件从
C:\Program Files\JetBrains\PyCharm 1.5.3\pycharm-debug.egg
复制到我的linux机器上。我把它放在/home/john/api-dependancies/pycharm-debug.egg
2。把鸡蛋放进Python体内
希望您能理解,除非python能够找到鸡蛋,否则您将无法使用它。我想大多数人都使用easy_install,但在我的例子中,我明确地添加了以下内容:
这是必要的,因为我仍然没有成功安装鸡蛋。这是我的解决办法。
3。设置调试服务器配置
在PyCharm中,您可以通过以下方式配置调试服务器:
“好的”
本地主机名:表示服务器的名称-在我的情况下是windows主机-或者实际上是windows主机的IP地址,因为主机名不为远程计算机所知。所以虚拟(远程)机器必须能够到达主机。
ping
和netstat
对此很好。端口:可以是您喜欢的任何空闲的非特权端口。例如:
21000
不太可能被使用。现在不要担心路径映射。
4。启动调试服务器
“调试控制台”选项卡将出现,您应该
在控制台中,这意味着ide调试服务器正在等待代码打开到它的连接。
5。插入代码
这在单元测试中起作用:
而在django web应用程序中,它的放置位置有点挑剔—似乎只有在完成其他操作之后才能工作:
同样,IP地址是运行Pycharm的框;您应该能够从运行代码/网站的框中ping该IP地址。港口是你的选择,只要你告诉皮查姆在同一个港口听。我发现
suspend=False
的问题比默认值少,不仅立即停止,因此您不确定它是否正常工作,而且还试图流到stdin/out,这可能会给您带来悲伤。6个。打开防火墙
默认情况下,Windows7防火墙将阻止您的传入连接。在远程主机上使用netstat,您将能够看到SYN_SENT从未建立,至少在为应用程序“pycharm”向windows防火墙添加异常之前是这样。
OS/X和Ubuntu没有要punch抛出的防火墙(默认情况下,可能有人稍后应用了一个)。
<强>7。设置断点并运行代码
毕竟,当一切都按计划进行时,可以在settrace运行之后的某个地方设置断点,pycharm控制台将显示
在“调试器”选项卡下,变量堆栈将开始工作,您可以单步执行代码。
8个。映射
映射告诉pycharm在哪里可以找到源代码。所以当调试器说“我正在运行file/foo/bar/nang.py的393行时,Pycharm可以将远程绝对路径转换为绝对路径本地路径。。。给你看看源代码。
完成。
相关问题 更多 >
编程相关推荐