该问题涉及运行'GAMMA SAR和干涉测量软件'(GAMMA)。为了在GAMMA中处理数据,用户需要在shell中输入复杂的命令。我试图用Python来将这些命令准备为字符串,并希望直接从Python运行/执行这些命令,而不是这种单调乏味的过程。dyld:Library未加载:libDIFF.dylib(在OSX El Capitan上)
下面是一个工作解决方案的简化示例:我在Python中准备一个字符串并将其打印到命令行。如果我手动将Python打印的字符串复制/粘贴到shell中,则Gamma可以平稳运行。
工作码:
# Visualize interferogram
p = 'dismph TMX.int 1189'
print(p) #copy/pasting this output to a command line runs the external program
这得到乏味作为每个命令需要被复制/从外壳到另一个壳粘贴。相反,我想运行Python并将命令打印到执行的shell中。以下代码能够将字符串打印到shell并执行它。
问题代码:
import os
# Visualize interferogram
p = 'dismph TMX.int 1189'
os.system(p)
不幸的是,我得到了以下错误消息。
错误:
dyld: Library not loaded: libDIFF.dylib
Referenced from: /Users/[username]/[programname]/[functionname]/bin/dismph
Reason: image not found
该样品在OSX埃尔卡皮坦版本10.11.4,与Python 3.5.1运行|蟒蛇2.4.1(x86_64的)| (默认,2015年12月7日11:24:55)[达尔文GCC 4.2.1(Apple Inc. build 5577)]:
问这个问题的另一种方式:打字和跑步有什么区别shell中的命令与从Python打印并执行相同的字符串。从技术上讲,两者都应该看到相同的变量/路径/库,但在这种情况下似乎有区别。 GAMMA似乎无法找到必要的库。
任何代码,只有理论? – haifzhan
[看看这个相关的问题](http://stackoverflow.com/questions/17703510/dyld-library-not-loaded-reason-image-not-loaded)。似乎你错过了一个依赖关系,或者找不到所需的依赖关系。需要一些代码来进一步诊断。你在什么操作系统上?可能很可能是共享库的简单路径问题。 –
这可能取决于平台。你在使用Apple iOS吗?哪个版本?这是一个32位或64位的Python? – tdelaney