在终端中工作,但在VS代码中不工作



我遇到了一个让我抓狂的问题。我有一个python脚本,当我在终端(ubuntu(中运行它时,它可以工作,但不能在vscode中运行。

终端代码只是:

python helper.py

helper.py如下所示:

from pynput.keyboard import Key, Controller
from pynput.keyboard import Listener
def on_press(key):
print('{0} pressed'.format(
key))
def on_release(key):
print('{0} release'.format(
key))
if key == Key.esc:
# Stop listener
return False
# Collect events until released
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()

当我在终端中运行它时,它工作得很好,但在vscode中它显示

Traceback (most recent call last):
File "/home/paul/Programming/statFit2/helper.py", line 1, in <module>
from pynput.keyboard import Key, Controller
File "/home/paul/anaconda3/lib/python3.7/site-packages/pynput/__init__.py", line 40, in <module>
from . import keyboard
File "/home/paul/anaconda3/lib/python3.7/site-packages/pynput/keyboard/__init__.py", line 52, in <module>
from ._xorg import KeyCode, Key, Controller, Listener
File "/home/paul/anaconda3/lib/python3.7/site-packages/pynput/keyboard/_xorg.py", line 39, in <module>
from pynput._util.xorg import (
File "/home/paul/anaconda3/lib/python3.7/site-packages/pynput/_util/xorg.py", line 40, in <module>
_check()
File "/home/paul/anaconda3/lib/python3.7/site-packages/pynput/_util/xorg.py", line 38, in _check
display = Xlib.display.Display()
File "/home/paul/anaconda3/lib/python3.7/site-packages/Xlib/display.py", line 89, in __init__
self.display = _BaseDisplay(display)
File "/home/paul/anaconda3/lib/python3.7/site-packages/Xlib/display.py", line 71, in __init__
protocol_display.Display.__init__(self, *args, **keys)
File "/home/paul/anaconda3/lib/python3.7/site-packages/Xlib/protocol/display.py", line 84, in __init__
name, protocol, host, displayno, screenno = connect.get_display(display)
File "/home/paul/anaconda3/lib/python3.7/site-packages/Xlib/support/connect.py", line 73, in get_display
return mod.get_display(display)
File "/home/paul/anaconda3/lib/python3.7/site-packages/Xlib/support/unix_connect.py", line 76, in get_display
raise error.DisplayNameError(display)
Xlib.error.DisplayNameError: Bad display name ""

这只是那些对我来说真的没有意义的事情之一,它们真的想让我放弃编程。

我知道您正试图使用Python编写脚本,如果您使用Terminal运行它,它可以工作,但如果您在VS编辑器中运行它,则不工作!如果你是这么说的,那么在终端上工作的默认版本可能会有所不同,在VS上工作的版本可能是在终端python 3上工作的,在编辑器中工作的版本是python 2。我更喜欢你尝试开发python的spyder程序您可以使用以下命令进行安装:sudo apt更新&amp;sudo apt-install-spyder&amp;sudo pip安装spyder

您需要在开始脚本中添加这一行如果您键入python2,请添加"#!/bin/python2"如果您键入python 3,请添加"#!/bin/python3"要告诉bash您需要运行什么版本的python让你继续学习兄弟

最新更新