不清楚哪个Python版本用于远程调试(eclipsepydev)

2024-06-08 00:28:33 发布

您现在位置:Python中文网/ 问答频道 /正文

以下指南在设置Eclipse Pydev(在本地计算机上)和远程调试(在虚拟机上)方面帮助很大:

http://pydev.org/manual_adv_remote_debugger.html

http://brianfisher.name/content/remote-debugging-python-eclipse-and-pydev

如果我理解正确,我正在调试的应用程序必须在远程主机上启动。因此,应用程序使用远程Python版本。在

现在,在pydevd.settrace(),Eclipse(本地主机)告诉我它在stacktrace中使用本地python文件。 这是因为pydevd_文件中的路径映射吗_实用工具.py(路径从_ECLIPSE_到_PYTHON)? 因为有些文件在这些映射之外(例如线程)。在

想象一下下面的情况:我在一个类似产品的(虚拟)机器(Python2.4)上调试我的应用程序,但是我的Eclipse托管在一个更新的开发机器上(默认情况下是Python2.7)。应用程序会在远程2.4python下运行吗?或者在本地2.7python下?在


Tags: 文件org路径机器应用程序http远程remote
3条回答

如果您正在使用代码,并且不确定它是v2还是v3,那么您可以使用

import sys
try:
    print sys.version
except:
    print(sys.version)

我找到了答案。 我需要测试这种远程调试器方法。在

让我解释一下我是怎么发现的:

我有一个使用python2.6.5的本地系统。 我用Python2.7.3创建了一个新的远程系统(本例中是虚拟机)。 然后我分享了以下脚本:

import pydevd
print 'hello world'

# call debugger server to handle this breakpoint
pydevd.settrace('10.31.94.156', stdoutToServer=True, stderrToServer=True)

# fron now on the host (debugger server) has control over breakpoints,
# variables, stepping through code etc.
print 'hi again'
import sys
print sys.version  # 2.7.3 (default, Sep 26 2013, 20:08:41)
                   # [GCC 4.6.3]

# now use a 2.7 feature: 
x = {i : chr(65+i) for i in range(4)}  # dict comprehension
print x  # {0: 'A', 1: 'B', 2: 'C', 3: 'D'}

import socket
print socket.gethostname()  # my virtual machine name

print 'done'

当然,我在Eclipse的主机上添加了一些断点。有趣的是,本地解释器给出了关于列表理解的错误,而实际上它是在运行的。它还有一个变量x,很好地显示在调试器变量窗格中。在

结论:远程解释器用于运行/评估代码。 调试器服务器帮助您

以下是两种确定当前Python版本的方法。在

via代码:

python -c 'import sys; print sys.version'

2.7.5+ (default, Feb 27 2014, 19:37:08) 
[GCC 4.8.1]

还有via

直接命令:

^{pr2}$

还有

主机名:

print socket.gethostname()

相关问题 更多 >

    热门问题