Pycharm 中使用os、subprocess等调用shell命令出现sh:l:XXX not found错误的解决方案

Pycharm 中使用os、subprocess等调用shell命令出现sh:l:XXX not found错误的解决方案

先说结论:从终端启动pycharm即可解决!……
遇到这种错误你可能首先做的事情是将shell默认编译环境从dash切换为bash,用的是如下的方法:

sudo dpkg-reconfigure dash

dash设置为no
但是很可惜这只能解决系统级别的命令的调用 比如help我们自己添加到环境变量里的某些在terminal中可执行的命令依旧提示not found.
这多半是由于你的pycharm没有经由terminal,而是从快捷方式或者其他的方法打开,这种打开方法,pycharm不会去读取bashrc中的环境变量,当然也就找不到某些不在系统底层环境中的命令了.这一点我们可以通如下方法验证:terminal中执行

echo $PATH

在pycharm写的脚本中运行:

import os
os.system('echo $PATH')

从两次获得的结果不同我们就可以找出问题了,有些明明添加了环境变量的路径,在pycharm中居然没有!(当然这种区别只出现在你没有从终端启动pycharm的情况)
解决方法也很简单,就是从终端启动pycharm,让其作为terminal的子进程(terminal 不能关闭了),到你的pycharm安装路径下执行 sh pychram.sh就不会出问题了
为了方便,给pycharm添加个软链接如下:

sudo ln -s /usr/local/pycharm-community-2018.2.4/bin/pycharm.sh /usr/bin/pycharm

路径换成自己的pycharm安装路径 下次就可以直接使用pycharm命令打开pycharm了
<

你可能感兴趣的:(Pycharm 中使用os、subprocess等调用shell命令出现sh:l:XXX not found错误的解决方案)