如何在python脚本中运行linux(ubuntu)命令?

2024-05-29 05:59:05 发布

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

我有一个需要路径的程序文件夹:

export RBT_ROOT=/path/to/installation/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RBT_ROOT/lib
export PATH=$PATH:$RBT_ROOT/bin

然后运行命令:

rbcavity -was -d -r <PRMFILE>

RBCASTER-是程序的bin文件夹中包含的exe程序

PRMFILE-当前路径中包含的程序(工作文件夹不包括在程序文件夹中)

这可以从命令行执行,但不能从python执行。我如何从python脚本(3.5)运行它?我尝试了subprocess.run,但找不到命令。。。我是linux新手,不太知道它是如何工作的


Tags: topath命令路径程序文件夹binlibrary
2条回答

我通常使用操作系统库。我正在使用以下命令运行和启动Cassandra服务器。最后,为了运行这个,我做了python filename.py

import os
os.chdir('./dsc-cassandra-3.0.9/bin')
os.system('./cassandra start')

线路

subprocess.run(["export", "PATH=$PATH:$RBT_ROOT/bin"], shell=True)

仅设置子进程(及其任何子进程,如果有)中的PATH环境变量。因此,它在Python程序中保持不变,这就是为什么找不到可执行文件的原因

要在Python中设置环境变量,请使用os.setenv。即

rbt_root='/path/to/installation/'
path = os.getenv('PATH')
path += ':'+rbt_root+'bin'
os.setenv('PATH',path)

编辑:

所以,结果证明os.setenv不是很好移植。相反,使用os.environ,这类似于字典。例如:

os.environ['PATH'] = path

相关问题 更多 >

    热门问题