Python 使用“运行远程调试时出错”;ptvsd";

Python 使用“运行远程调试时出错”;ptvsd";,python,debugging,visual-studio-code,Python,Debugging,Visual Studio Code,我已开始使用visual studio代码进行远程调试,但无法使其正常工作。远程和本地开发PC都运行4.1.3版ptvsd。远程计算机具有以下脚本: import ptvsd ptvsd.enable_attach() #Enable the below line of code only if you want the application to wait untill the debugger has att$ #ptvsd.wait_for_attach() import rando

我已开始使用visual studio代码进行远程调试,但无法使其正常工作。远程和本地开发PC都运行4.1.3版ptvsd。远程计算机具有以下脚本:

import ptvsd
ptvsd.enable_attach()

#Enable the below line of code only if you want the application to wait untill the debugger has att$
#ptvsd.wait_for_attach()

import random


guesses_made = 0
name = input('Hello! What is your name?\n')
number = random.randint(1, 20)
print('Well, {0}, I am thinking of a number between 1 and 20.'.format(name))

while guesses_made < 6:
    guess = int(input('Take a guess: '))
    guesses_made += 1
    if guess < number:
        print('Your guess is too low.')
    if guess > number:
        print('Your guess is too high.')
    if guess == number:
        break
if guess == number:
    print('Good job, {0}! You guessed my number in {1} guesses!'.format(name, guesses_made))
else:
    print('Nope. The number I was thinking of was {0}'.format(number))
这是我收到的错误:

> PS C:\IOT\Github\RaspberryPi\test_remote_debug> python
> .\test_remote_debug.py Traceback (most recent call last):   File
> ".\test_remote_debug.py", line 2, in <module>
>     ptvsd.enable_attach(address = ('192.34.98.197',3000))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\attach_server.py", line 72,
> in enable_attach
>     redirect_output=redirect_output,   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 85, in
> enable_attach
>     suspend=False)   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 1313, in settrace
>     stop_at_frame,   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 1362, in _locked_settrace
>     debugger.connect(host, port)  # Note: connect can raise error.   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 355, in connect
>     s = start_client(host, port)   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\pydevd_hooks.py", line 85,
> in <lambda>
>     _start_client = (lambda h, p: start_client(daemon, h, p))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 72, in
> <lambda>
>     start_client=(lambda daemon, h, port: start_daemon()),   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 64, in
> start_daemon
>     _, next_session = daemon.start_server(addr=(host, port))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\daemon.py", line 157, in
> start_server
>     self._server = create_server(addr.host, addr.port)   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\socket.py", line 77, in
> create_server
>     server.bind((host, port)) OSError: [WinError 10049] The requested address is not valid in its context PS
> C:\IOT\Github\RaspberryPi\test_remote_debug> python
> .\test_remote_debug.py Traceback (most recent call last):   File
> ".\test_remote_debug.py", line 2, in <module>
>     ptvsd.enable_attach(address = ('192.34.98.197',3000))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\attach_server.py", line 72,
> in enable_attach
>     redirect_output=redirect_output,   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 85, in
> enable_attach
>     suspend=False)   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 1313, in settrace
>     stop_at_frame,   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 1362, in _locked_settrace
>     debugger.connect(host, port)  # Note: connect can raise error.   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 355, in connect
>     s = start_client(host, port)   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\pydevd_hooks.py", line 85,
> in <lambda>
>     _start_client = (lambda h, p: start_client(daemon, h, p))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 72, in
> <lambda>
>     start_client=(lambda daemon, h, port: start_daemon()),   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 64, in
> start_daemon
>     _, next_session = daemon.start_server(addr=(host, port))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\daemon.py", line 157, in
> start_server
>     self._server = create_server(addr.host, addr.port)   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\socket.py", line 77, in
> create_server
>     server.bind((host, port)) OSError: [WinError 10049] The requested address is not valid in its context
PS C:\IOT\Github\RaspberryPi\test\u remote\u debug>python >.\test\u remote\u debug.py回溯(最后一次调用):文件 >“\test\u remote\u debug.py”,第2行,在 >ptvsd.enable_attach(地址=('192.34.98.197',3000))文件“C:\Program Files >(x86)\Python37-32\lib\site packages\ptvsd\attach_server.py“,第72行, >在“启用\附加”中 >重定向\u输出=重定向\u输出,文件“C:\Program Files(x86)\Python37-32\lib\site packages\ptvsd\\u remote.py”,第85行,在 >启用\u附加 >suspend=False)文件“C:\ProgramFiles(x86)\Python37-32\lib\site packages\ptvsd\\u vendored\pydevd\pydevd.py”, >settrace中的第1313行 >在文件“C:\Program Files(x86)\Python37-32\lib\site packages\ptvsd\\u vendored\pydevd\pydevd.py”的框架中停止, >第1362行,在_locked_settrace中 >调试器.connect(主机、端口)#注意:connect可能引发错误。文件“C:\程序文件 >(x86)\Python37-32\lib\site packages\ptvsd\\u vendored\pydevd\pydevd.py“, >第355行,连接中 >s=start_客户端(主机、端口)文件“C:\Program Files(x86)\Python37-32\lib\site packages\ptvsd\pydevd_hooks.py”,第85行, >在 >_start_client=(lambda h,p:start_client(daemon,h,p))File“C:\Program Files >(x86)\Python37-32\lib\site packages\ptvsd\\u remote.py”,第72行,在 > >start_client=(lambda守护进程,h,端口:start_守护进程()),文件“C:\Program Files >(x86)\Python37-32\lib\site packages\ptvsd\\u remote.py”,第64行,在 >启动守护进程 >下一个会话=守护进程。启动服务器(地址=(主机,端口))文件“C:\Program Files >(x86)\Python37-32\lib\site packages\ptvsd\daemon.py”,第157行,在 >启动服务器 >self.\u server=创建\u服务器(addr.host,addr.port)文件“C:\Program Files >(x86)\Python37-32\lib\site packages\ptvsd\socket.py”,第77行,在 >创建\u服务器 >server.bind((主机,端口))os错误:[WinError 10049]请求的地址在其上下文中无效 >C:\IOT\Github\RaspberryPi\test\u remote\u debug>python >.\test\u remote\u debug.py回溯(最后一次调用):文件 >“\test\u remote\u debug.py”,第2行,在 >ptvsd.enable_attach(地址=('192.34.98.197',3000))文件“C:\Program Files >(x86)\Python37-32\lib\site packages\ptvsd\attach_server.py“,第72行, >在“启用\附加”中 >重定向\u输出=重定向\u输出,文件“C:\Program Files(x86)\Python37-32\lib\site packages\ptvsd\\u remote.py”,第85行,在 >启用\u附加 >suspend=False)文件“C:\ProgramFiles(x86)\Python37-32\lib\site packages\ptvsd\\u vendored\pydevd\pydevd.py”, >settrace中的第1313行 >在文件“C:\Program Files(x86)\Python37-32\lib\site packages\ptvsd\\u vendored\pydevd\pydevd.py”的框架中停止, >第1362行,在_locked_settrace中 >调试器.connect(主机、端口)#注意:connect可能引发错误。文件“C:\程序文件 >(x86)\Python37-32\lib\site packages\ptvsd\\u vendored\pydevd\pydevd.py“, >第355行,连接中 >s=start_客户端(主机、端口)文件“C:\Program Files(x86)\Python37-32\lib\site packages\ptvsd\pydevd_hooks.py”,第85行, >在 >_start_client=(lambda h,p:start_client(daemon,h,p))File“C:\Program Files >(x86)\Python37-32\lib\site packages\ptvsd\\u remote.py”,第72行,在 > >start_client=(lambda守护进程,h,端口:start_守护进程()),文件“C:\Program Files >(x86)\Python37-32\lib\site packages\ptvsd\\u remote.py”,第64行,在 >启动守护进程 >下一个会话=守护进程。启动服务器(地址=(主机,端口))文件“C:\Program Files >(x86)\Python37-32\lib\site packages\ptvsd\daemon.py”,第157行,在 >启动服务器 >self.\u server=创建\u服务器(addr.host,addr.port)文件“C:\Program Files >(x86)\Python37-32\lib\site packages\ptvsd\socket.py”,第77行,在 >创建\u服务器 >server.bind((主机,端口))os错误:[WinError 10049]请求的地址在其上下文中无效
如果有人知道如何更正此错误,请告诉我。

您的
launch.json
已过时,因为它是为旧调试器配置的。请参阅以获取最新说明(例如,
localRoot
remoteRoote
应位于
pathMappings
下)。

更近一步,我现在让本地和远程计算机相互通信。我两次收到以下消息:pydev调试器:警告:尝试向不存在的文件添加断点:/home/pi/testdebug/C:/IOT/Github/RaspberryPi/test\u remote\u debug/test\u remote\u debug.py(将无效)。有什么想法吗?另外,我在上创建了另一个问题,因为这是一个不同的问题:您的路径看起来没有为
localRoot
remoteRoot
正确设置。如果您查看
/home/pi/testdebug/C:/IOT/Github/RaspberryPi/test\u remote\u debug/test\u remote\u debug.py
,您会注意到似乎在Windows路径前面加了一些UNIX路径。
{
    "name": "Attach (Remote Debug)",
    "type": "python",
    "request": "attach",
    "localRoot": "${workspaceRoot}",
    "remoteRoot": "/home/pi/testdebug/",
    "port": 3000,
    "secret": "my_secret",
    "host":"localhost"
},
> PS C:\IOT\Github\RaspberryPi\test_remote_debug> python
> .\test_remote_debug.py Traceback (most recent call last):   File
> ".\test_remote_debug.py", line 2, in <module>
>     ptvsd.enable_attach(address = ('192.34.98.197',3000))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\attach_server.py", line 72,
> in enable_attach
>     redirect_output=redirect_output,   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 85, in
> enable_attach
>     suspend=False)   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 1313, in settrace
>     stop_at_frame,   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 1362, in _locked_settrace
>     debugger.connect(host, port)  # Note: connect can raise error.   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 355, in connect
>     s = start_client(host, port)   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\pydevd_hooks.py", line 85,
> in <lambda>
>     _start_client = (lambda h, p: start_client(daemon, h, p))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 72, in
> <lambda>
>     start_client=(lambda daemon, h, port: start_daemon()),   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 64, in
> start_daemon
>     _, next_session = daemon.start_server(addr=(host, port))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\daemon.py", line 157, in
> start_server
>     self._server = create_server(addr.host, addr.port)   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\socket.py", line 77, in
> create_server
>     server.bind((host, port)) OSError: [WinError 10049] The requested address is not valid in its context PS
> C:\IOT\Github\RaspberryPi\test_remote_debug> python
> .\test_remote_debug.py Traceback (most recent call last):   File
> ".\test_remote_debug.py", line 2, in <module>
>     ptvsd.enable_attach(address = ('192.34.98.197',3000))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\attach_server.py", line 72,
> in enable_attach
>     redirect_output=redirect_output,   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 85, in
> enable_attach
>     suspend=False)   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 1313, in settrace
>     stop_at_frame,   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 1362, in _locked_settrace
>     debugger.connect(host, port)  # Note: connect can raise error.   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_vendored\pydevd\pydevd.py",
> line 355, in connect
>     s = start_client(host, port)   File "C:\Program Files (x86)\Python37-32\lib\site-packages\ptvsd\pydevd_hooks.py", line 85,
> in <lambda>
>     _start_client = (lambda h, p: start_client(daemon, h, p))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 72, in
> <lambda>
>     start_client=(lambda daemon, h, port: start_daemon()),   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\_remote.py", line 64, in
> start_daemon
>     _, next_session = daemon.start_server(addr=(host, port))   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\daemon.py", line 157, in
> start_server
>     self._server = create_server(addr.host, addr.port)   File "C:\Program Files
> (x86)\Python37-32\lib\site-packages\ptvsd\socket.py", line 77, in
> create_server
>     server.bind((host, port)) OSError: [WinError 10049] The requested address is not valid in its context