python pyperclip KeyError XDG_会话_类型

2024-06-11 01:04:22 发布

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

pyperclip无法确定我的系统的剪贴板

有什么建议吗

我在运行CentOS 7

我已经验证了xclip并且正在工作

cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

% echo "test" | xclip -i -sel clip
% echo "test selection" | xclip -i -sel clip
% xclip -o -sel clip
test selection

In [1]: import pyperclip
In [2]: pyperclip.copy("test selection")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/data/py36_venv/lib64/python3.6/site-packages/pyperclip/__init__.py", line 658, in lazy_load_stub_copy
    copy, paste = determine_clipboard()
  File "/home/data/py36_venv/lib64/python3.6/site-packages/pyperclip/__init__.py", line 568, in determine_clipboard
    os.environ["XDG_SESSION_TYPE"] == "wayland" and
  File "/usr/lib64/python3.6/os.py", line 669, in __getitem__
    raise KeyError(key) from None
KeyError: 'XDG_SESSION_TYPE'

'XDG_SESSION_TYPE'



Tags: inpytestclipsessiontypelinefile
1条回答
网友
1楼 · 发布于 2024-06-11 01:04:22

如果您以root用户身份运行,则可能会发生这种情况,因为pyperclip需要设置环境变量XDG_SESSION_TYPEXDG_SESSION_TYPE的值取决于您的X设置

要解决此问题,请从非root用户获取XDG_SESSION_TYPE值:

% echo $XDG_SESSION_TYPE

在以root用户身份运行的会话中,在运行python脚本之前设置env var:

% export XDG_SESSION_TYPE=<value_from_user_account>

相关问题 更多 >