2
votes

Running cxfreeze 4.2.3 on osx 10.7 with pyside 1.1.0 i get:

copying libpyside-python2.7.1.1.dylib -> build/exe.macosx-10.7-intel-2.7/libpyside-python2.7.1.1.dylib error: libpyside-python2.7.1.1.dylib: No such file or directory

It found the PySide module no problem in the output:

copying /Library/Python/2.7/site-packages/PySide/QtCore.so -> build/exe.macosx-10.7-intel-2.7/PySide.QtCore.so

Using osx's python2.7 and no MacPorts installed

1
Ask on the cx_Freeze mailing list, there are some mac users who may have ideas. Also, try updating to cx_Freeze 4.3. - Thomas K
Thx Thomas K, 4.3 was the same, trying the list. - navicore

1 Answers

2
votes

This happens because cx_Freeze takes the output of libraries from otool -L and uses it as the absolute path to copy the library from.

In my case this was a problem because the libraries are in a virtual environment that's different on each machine, and cx_Freeze would then fail to find the libraries. You can fix this using the install_name_tool command to replace the path. I have my project's bootstrap script set up to scan all .so or .dylib files for libraries that exist within the virtual environment, and swap out the paths.

To manually do this it's:

otool -L /Library/Python/2.7/site-packages/PySide/QtCore.so
install_name_tool -change "<path listed for libpyside above>" "<actual path to libpyside" /Library/Python/2.7/site-packages/PySide/QtCore.so

Be careful doing this for a global file like that, you're probably better having things in a virtualenv environment.