【发布时间】:2011-06-07 04:17:29
【问题描述】:
我有一个相当长的设置,最后是三个问题。 在 OS X 上,System Python 框架包含三个可执行文件(让我给它们简称):
> F=/System/Library/Frameworks/Python.framework/Versions/2.6
> A=$F/bin/python2.6
> B=$F/Resources/Python.app/Contents/MacOS/Python
> C=$F/Python
$A 和 $B 显然太小而不能成为 Python 本身。
> ls -s $A; ls -s $B; ls -s $C
16 /System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6
16 /System/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
3152 /System/Library/Frameworks/Python.framework/Versions/2.6/Python
> $A
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
> $B
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
> $C
-bash: /System/Library/Frameworks/Python.framework/Versions/2.6/Python: cannot execute binary file
尽管大小和效果相同,但前两个是不同的,例如:
> cmp -lc $A $B
另外,在 /usr/bin 中,python2.6 是指向 $C 的符号链接,但也有:
> D=/usr/bin/python
> ls -s $D
48 /usr/bin/python
我想弄清楚这些是如何连接的;命令which 没有帮助。
> export DYLD_PRINT_LIBRARIES=1
> $A
..
dyld: loaded: /System/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
dyld: loaded: /System/Library/Frameworks/Python.framework/Versions/2.6/Python
总结:$A 加载 $B 后跟 $C; $B 加载 $C; $D 加载 $B 后跟 $C
所以我的问题是:
- 这是否记录在任何地方?
- 这些扮演什么角色?
- 最重要的是,哪些工具可用于跟踪此类连接?
【问题讨论】:
-
这有什么关系?你有什么问题?没有上下文——你不能做的事情——这似乎对任何人都没有帮助。
-
@S.Lott:我想了解这个设置是如何工作的。即使您认为这不是一个合适的问题,#3 仍然是。我省略了 nm,这有助于表明 $A 和 $B 没有多大作用,但 file 根本没有真正的帮助。我可以接受答案 #1,但我希望有更具体的工具。
-
更具体的工具做什么? - Unix是一组相互协作的工具
标签: python macos frameworks