python subprocess.call在mac中找不到dylib

时间:2017-08-06 02:53:21

标签: python macos subprocess intel-mkl

我有一个使用Intel-mkl的C ++程序,在编译代码后(假设可执行文件是var tabLabel = document.getElementById('one'); tabLabel.addEventListener("click", function() { if (this.innerHTML=="Read More") { this.innerHTML = "Collapse"; } else { this.innerHTML = "Read More"; } }); ),我可以在终端中运行它

a.out

完美无缺。

如果我使用python /Users/hshi/test/a.out 来运行subprocess.call,那么python代码就像

a.out

然后运行python脚本,它有一个错误:

import subprocess
subprocess.call( "/Users/hshi/test/a.out", shell=True)

我认为python脚本应该像在终端中运行dyld: Library not loaded: @rpath/libmkl_intel_lp64.dylib Referenced from: /Users/hshi/test/a.out Reason: image not found 一样工作。

我正在使用MacBookPro。我已经使用

将Intel-mkl路径添加到/Users/hshi/test/a.outDYLD_LIBRARY_PATH
DYLD_FALLBACK_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Users/hshi/Library/Intel/mkl/lib export DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH:/Users/hshi/Library/Intel/mkl/lib 中的

~/.profile由cmake编译,编译标志看起来像

a.out

我觉得编译代码很好,问题可能是Python没有加载我的环境路径。谢谢你的帮助。

=========================

如果我创建到/ usr / local / lib的符号链接,问题就解决了。

我也在网上找到了一些有趣的信息https://github.com/oracle/node-oracledb/issues/231

/Users/hshi/Library/openmpi-intel/bin/mpicxx  -Wall -O3 -DNDEBUG 
 -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/complexDoubleErrorAnalysis.dir/complexDoubleErrorAnalysis.cpp.o  -o a.out 
-Wl,-rpath, /Users/hshi/Library/Intel/mkl/lib/libmkl_intel_lp64.dylib 
/Users/hshi/Library/Intel/mkl/lib/libmkl_core.dylib 
/Users/hshi/Library/Intel/mkl/lib/libmkl_sequential.dylib -lm -ldl -lpthread

我猜python subprocess.call无法加载DYLD_LIBRARY_PATH。

0 个答案:

没有答案