我正在尝试使用python脚本中的以下代码从python中生成子进程:
p = subprocess.Popen(['./appleseed.cli', '--version'])
问题是该命令依赖于共享库,因此我收到以下错误
./appleseed.cli: error while loading shared libraries: libappleseed.so: cannot open shared object file: No such file or directory
我有系统PATH
中的主二进制文件以及LD_LIBRARY_PATH
中的lib,但这似乎没有帮助。这些设置在~/.bash_profile
。
有趣的是,如果我在交互式python会话中运行相同的代码,它也会工作,同时将命令指定为appleseed.cli
,而./
也不会起作用。
我正在运行ubuntu和python 2.7
下面是我正在使用的完整python文件:
import argparse
import subprocess
def print_appleseed_version(args):
p = subprocess.Popen(['./appleseed.cli', '--version'])
def main():
# Parse the command line.
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--tool-path", metavar="tool-path")
args = parser.parse_args()
print_appleseed_version(args)
if __name__ == '__main__':
main()
我从命令行运行此代码,如下所示:
sudo python ../test.py -t appleseed.cli