【发布时间】:2020-11-07 11:29:36
【问题描述】:
我正在尝试将某些内容复制到我的剪贴板中,用于 Python 中的一个项目。由于 KDE Plasma 的错误,我无法使用模块复制到剪贴板。我没有尝试解决这个问题,而是决定解决它:
os.system('echo text | xclip -sel clip')
我得到的错误是
sh: xclip: command not found
Xclip 已安装并且可以在我自己的命令行中正常工作,但使用 Pycharm 中的终端。无法识别命令 sudo。我不明白为什么这些没有被识别,以及我必须做什么才能从内置终端访问像 xclip 这样的东西。
在我的功能下拉列表中:
$PATH
bash: /home/danielh/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin: No such file or directory
在我功能失调的内置终端中:
echo $PATH
/home/danielh/PycharmProjects/DetermineDistances/venv/bin:/app/bin:/usr/bin
sudo pacman 也无法识别,为什么我缺少这些命令?
[danielh@Pomegranate DetermineDistances]$ which pacman
which: no pacman in (/app/bin:/usr/bin)
[danielh@Pomegranate DetermineDistances]$ which xclip
which: no xclip in (/app/bin:/usr/bin)
我已经把clipboard.sh放到了项目目录下,但是即使运行,xclip也找不到。但是,如果我从自己的终端运行它,它就可以正常工作:
subprocess.call('./clipboard.sh') ./clipboard.sh: line 2: xclip: command not found
[danielh@Pomegranate DetermineDistances]$ ./clipboard.sh 工作得很好
[danielh@Pomegranate DetermineDistances]$ which xclip /usr/bin/xclip 也可以
@CrazyCoder 的解决方案似乎没有任何效果。
[danielh@Pomegranate bin]$ sudo /var/lib/flatpak/app/com.jetbrains.PyCharm-Community/current/active/export/bin/com.jetbrains.PyCharm-Community
PyCharm 已打开,但我仍然无法访问 pacman 或 xclip
(venv) [danielh@Pomegranate DetermineDistances]$ strace -e stat which xclip
strace: test_ptrace_get_syscall_info: PTRACE_TRACEME: Operation not permitted
strace: ptrace(PTRACE_TRACEME, ...): Operation not permitted
strace: PTRACE_SETOPTIONS: Operation not permitted
strace: detach: waitpid(157): No child processes
strace: Process 157 detached
【问题讨论】:
-
听起来像是 PATH 变量的问题,建议您运行
os.system('echo $PATH')并报告结果 @Straw,xclip 不是内置的 bash,而是二进制文件 -
which pacman和which xclip的结果是什么? -
这很奇怪。
strace -e stat which xclip呢? -
sudo strace -e stat which xclip -
sudo 没有找到,所以我不能这样做
标签: python bash pycharm kde manjaro