代码之家  ›  专栏  ›  技术社区  ›  DPSSpatial

如何在debianlinux上使用PyCharm在python中执行系统调用?

  •  0
  • DPSSpatial  · 技术社区  · 7 年前

    我无法使用PyCharm运行系统调用,也无法确定要更改哪些变量或环境设置。

    考虑到这个简单的脚本:

    import os
    cmd = 'ifconfig -a'
    os.system(cmd)
    

    sh: ifconfig: command not found
    

    这在我尝试运行的任何进程中都会发生,比如CSVSQL、PSQL等。

    我试过: 在显示命令行中显示的python解释器路径时,我尝试将它们添加到PyCharm解释器路径中,但没有效果。

    有几个其他线程描述类似的问题,但似乎没有一个好的解决方案,我遇到了。

    我运行的是LinuxMint19,不过这在我的Windows安装上是可行的(路径输出有很大的不同)。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Nicholas Pipitone    7 年前

    printenv 在Python和terminal上,并检查 PATH 变量。使用 os.environ['PATH'] = 'My path' 把它设置成你在终点站看到的样子。

    对于未来的问题(我遇到过):

    os.system("/bin/sh -c \"MYCMD\"") ,然后运行相同的 "/bin/sh -c \"MYCMD\""

    打印环境 (应该是一系列 declare s) ,并将其粘贴到python中,这样python将获得相同的变量。然后您的“/bin/sh CMD”调用应该对齐。

    包裹的 /bin/sh 以防它们运行不同的shell或具有不同的局部变量。 echo $SHELL set s 打印环境 以相同的方式复制和粘贴。您只需比较导出,因为这是传递给子进程的内容。

        2
  •  0
  •   stingray    7 年前

    看起来pycharm没有从你的个人资料或rc中获取路径。尝试给出命令的绝对路径。

    import os cmd = '/sbin/ifconfig -a' os.system(cmd)

    您还可以使用以下命令验证您的路径。

    print(os.environ['PATH'])

    并使用以下命令将自定义路径添加到当前环境路径。

    os.environ['PATH'] += ':/sbin'

    推荐文章