Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么PyCharm中的命令行不识别bash命令?_Python_Bash_Pycharm_Kde_Manjaro - Fatal编程技术网

Python 为什么PyCharm中的命令行不识别bash命令?

Python 为什么PyCharm中的命令行不识别bash命令?,python,bash,pycharm,kde,manjaro,Python,Bash,Pycharm,Kde,Manjaro,我正在尝试将一些东西复制到我的剪贴板上,以用于Python中的一个项目。由于KDE Plasma存在错误,我无法使用模块复制到剪贴板。我没有试图解决这个问题,而是决定用以下方法解决这个问题: os.system('echo text | xclip -sel clip') 作为回报,我得到的错误是 sh: xclip: command not found Xclip在我自己的命令行中安装并工作得很好,但终端在Pycharm中。无法识别命令sudo。我不明白为什么这些没有被识别,我必须做些什么

我正在尝试将一些东西复制到我的剪贴板上,以用于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也不被识别,为什么我错过了这些命令


我已将
clipboard.sh
放在项目目录中,但即使在运行时,也找不到xclip。但是,如果我从自己的终端运行它,它就可以正常工作:

subprocess.call('./clipboard.sh')./clipboard.sh:第2行:xclip:未找到命令

[danielh@PomegranateDeterminiteInstances]$./clipboard.sh
工作正常
[danielh@Pomegranate确定状态]$哪个xclip/usr/bin/xclip也起作用


@CrazyCoder的解决方案似乎没有任何效果。
[danielh@Pomegranatebin]$sudo/var/lib/flatpak/app/com.jetbrains.PyCharm-Community/current/active/export/bin/com.jetbrains.PyCharm-Community
PyCharm打开了,但我仍然无法访问
pacman
xclip



我已通过卸载PyCharmCE的Flatpak存储库安装并使用Snap存储库重新安装PyCharmCE 2020.1.3解决了此问题

[danielh@Pomegranate PycharmProjects]$ whereis xclip
xclip: /usr/bin/xclip /usr/share/man/man1/xclip.1.gz
[danielh@Pomegranate PycharmProjects]$ whereis sudo
sudo: /usr/bin/sudo /usr/lib/sudo /etc/sudo.conf /usr/share/man/man8/sudo.8.gz

我已通过卸载PyCharmCE的Flatpak存储库安装并使用Snap存储库重新安装PyCharmCE 2020.1.3解决了此问题

[danielh@Pomegranate PycharmProjects]$ whereis xclip
xclip: /usr/bin/xclip /usr/share/man/man1/xclip.1.gz
[danielh@Pomegranate PycharmProjects]$ whereis sudo
sudo: /usr/bin/sudo /usr/lib/sudo /etc/sudo.conf /usr/share/man/man8/sudo.8.gz

在我看到您使用Flatpak安装后,我进一步挖掘了一下。Flatpak有自己的沙箱,所以这实际上是问题的根源

因此,Flatpak似乎创建了自己的
/usr/bin
,它与“主机”
/usr/bin
完全无关。真正的
/usr/bin
安装在
/var/run/host/usr/bin
下(
/usr
/dev
通常都在
/var/run/host
下)

这就是
xclip
的位置。因此,如果要运行
xclip
,必须首先将其添加到路径:

os.environ["PATH"] = "/var/run/host:" + os.environ["PATH"]
但是,这还不够,因为
xclip
还依赖于一个名为
LibXmu
,在使用此修改运行命令时很明显:

/var/run/host/usr/bin/xclip: error while loading shared libraries: libXmu.so.6: cannot open shared object file: No such file or directory
但是,由于一旦agian Flatpak在其
/usr/lib
路径下没有真正的
/usr/lib
,我们必须在
/var/run/host/usr/lib
下为共享库查找提供另一个环境变量

os.environ["LD_LIBRARY_PATH"] =  "/var/run/host/usr/lib/x86_64-linux-gnu"
因此,该代码现在应该可以工作了:

import os
os.environ["LD_LIBRARY_PATH"] =  "/var/run/host/usr/lib/x86_64-linux-gnu"
os.environ["PATH"] = "/var/run/host/usr/bin:" + os.environ["PATH"]
os.system('echo text | xclip -sel clip')

总之,Flatpak会让事情变得更烦人,所以最好避免它;)

在我看到您正在使用Flatpak安装后,我进一步挖掘了一下。Flatpak有自己的沙箱,所以这实际上是问题的根源

因此,Flatpak似乎创建了自己的
/usr/bin
,它与“主机”
/usr/bin
完全无关。真正的
/usr/bin
安装在
/var/run/host/usr/bin
下(
/usr
/dev
通常都在
/var/run/host
下)

这就是
xclip
的位置。因此,如果要运行
xclip
,必须首先将其添加到路径:

os.environ["PATH"] = "/var/run/host:" + os.environ["PATH"]
但是,这还不够,因为
xclip
还依赖于一个名为
LibXmu
,在使用此修改运行命令时很明显:

/var/run/host/usr/bin/xclip: error while loading shared libraries: libXmu.so.6: cannot open shared object file: No such file or directory
但是,由于一旦agian Flatpak在其
/usr/lib
路径下没有真正的
/usr/lib
,我们必须在
/var/run/host/usr/lib
下为共享库查找提供另一个环境变量

os.environ["LD_LIBRARY_PATH"] =  "/var/run/host/usr/lib/x86_64-linux-gnu"
因此,该代码现在应该可以工作了:

import os
os.environ["LD_LIBRARY_PATH"] =  "/var/run/host/usr/lib/x86_64-linux-gnu"
os.environ["PATH"] = "/var/run/host/usr/bin:" + os.environ["PATH"]
os.system('echo text | xclip -sel clip')

总之,Flatpak会让事情变得更烦人,所以最好避免它;)

听起来像是PATH变量的问题,建议您运行
os.system('echo$PATH')
并报告结果@Straw,xclip不是bash内置的,而是二进制文件
哪个pacman
哪个xclip
的结果是什么?这很奇怪。关于
strace-e stat which xclip
sudo-strace-e stat which xclip
sudo找不到,所以我不能这么做。这听起来像是PATH变量的问题,建议您运行
os.system('echo$PATH')
并报告结果@Straw,xclip不是bash内置的,但是一个二进制文件
哪个pacman
哪个xclip
的结果是什么?这很奇怪。那么
strace-e stat哪个xclip
sudo strace-e stat哪个xclip
sudo没有找到,所以我首先不能这样做