Python cx_冻结链接到/opt/local中的库,而不是它复制的库
我在Macports和MacOS10.10上安装了Python 3.4和cx_freeze 4.3.4,并构建了一个冻结的可执行文件。但是,有两个链接库指向它们在我的Macports安装中的路径(位于Python cx_冻结链接到/opt/local中的库,而不是它复制的库,python,macos,macports,cx-freeze,Python,Macos,Macports,Cx Freeze,我在Macports和MacOS10.10上安装了Python 3.4和cx_freeze 4.3.4,并构建了一个冻结的可执行文件。但是,有两个链接库指向它们在我的Macports安装中的路径(位于/opt/local) 来自otool-L: Load command 7 cmd LC_LOAD_DYLINKER cmdsize 32 name /usr/lib/dyld (offset 12) Load command 8 cmd
/opt/local
)
来自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和libiconv.2.dylib都是与我冻结的应用程序一起复制的,因此从/opt/local
加载它们会破坏其他系统的可移植性
dyld: Library not loaded:
/opt/local/Library/Frameworks/Python.framework/Versions/3.4/Python
看起来我不是唯一一个经历过这个问题的人
Pyinstaller不支持python3,py2app不适用于curses控制台应用程序,因此我确实需要它来工作。请检查,它是一个很好的工具,可以收集mac上可执行文件的依赖项,并通过install\u name工具更改dylibs的路径。下载它,编译它,并通过
dylibbundler-od-b-x./pathto/executable-p@executable\u path/relativepathtoyourexecutable/libs/
github上的自述文件也解释了所有参数。这是一个很好的解决方法。我更喜欢修正cx_冻结,但我不是那个投票否决你的人。是的,我不知道,只是想帮你:)看起来你自己也有责任。这至少是我对这个问题的解释&结束这个问题的PR:没有提到install\u name\u工具,但是initScript似乎是一个你应该关注的东西。