我在Macports和Mac OS 10.10上安装了Python 3.4和cx_freeze 4.3.4,并构建了一个冻结的可执行文件。但是,一些链接库指向/opt/local
中我的Macports安装路径。
来自otool -L:
Load command 7
cmd LC_LOAD_DYLINKER
cmdsize 32
name /usr/lib/dyld (offset 12)
Load command 8
cmd LC_UUID
cmdsize 24
uuid 2CE48062-D852-3DD1-B4BD-F5A60227CD19
Load command 9
cmd LC_VERSION_MIN_MACOSX
cmdsize 16
version 10.10
sdk 10.10
Load command 10
cmd LC_SOURCE_VERSION
cmdsize 16
version 0.0
Load command 11
cmd LC_MAIN
cmdsize 24
entryoff 5424
stacksize 0
Load command 12
cmd LC_LOAD_DYLIB
cmdsize 96
name /opt/local/Library/Frameworks/Python.framework/Versions/3.4/Python (offset 24)
time stamp 2 Wed Dec 31 19:00:02 1969
current version 3.4.0
compatibility version 3.4.0
Load command 13
cmd LC_LOAD_DYLIB
cmdsize 56
name /opt/local/lib/libintl.8.dylib (offset 24)
time stamp 2 Wed Dec 31 19:00:02 1969
current version 10.3.0
compatibility version 10.0.0
Python
libintl.8.dylib
和libiconv.2.dylib
都与我的冻结应用程序一起被复制,因此从/opt/local
加载它们会破坏其他系统的可移植性。
dyld: Library not loaded:
/opt/local/Library/Frameworks/Python.framework/Versions/3.4/Python
看起来我不是唯一经历过这个问题的人。
Pyinstaller不支持python3,py2app不适用于curses控制台应用程序,所以我真的需要这个才能工作。
答案 0 :(得分:0)
查看https://github.com/auriamg/macdylibbundler,它是一个很棒的工具,可以在mac上收集可执行文件的依赖关系,并通过install_name工具更改dylib的路径。下载,编译并通过
将其应用于您的可执行文件dylibbundler -od -b -x ./pathto/executable -p @ executable_path / relativepathtoyourexecutable / libs /
github上的自述文件也解释了所有参数。