Py2app TypeError: dyld_find () received an unexpected keyword argument 'loader'

It's hard for me to create an application using py2app. I can create it in an alias without problems using this command:

python3.4 setup.py py2app -A 

However, when I try to build it using:

 python3.4 setup.py py2app 

I get an error message according to the title of this message. From the research that I did, I believe this is a pillow problem; however, for this application I need a pillow. (Is there any other module that I can use to import images?). I also tried cx_freeze without success.

Any help or direction is greatly appreciated.

Full trace:

 Traceback (most recent call last): File "setup.py", line 19, in <module> setup_requires=['py2app'], File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ distutils/core.py", line 148, in setup dist.run_commands() File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ distutils/dist.py", line 955, in run_commands self.run_command(cmd) File"/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ distutils/dist.py", line 974, in run_command cmd_obj.run() File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ site- packages/py2app/build_app.py", line 659, in run self._run() File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ site- packages/py2app/build_app.py", line 865, in _run self.run_normal() File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ site- packages/py2app/build_app.py", line 959, in run_normal self.create_binaries(py_files, pkgdirs, extensions,loader_files) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ site- packages/py2app/build_app.py", line 1214, in create_binaries platfiles = mm.run() File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ site-packages/macholib/MachOStandalone.py", line 105, in run mm.run_file(fn) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ site-packages/macholib/MachOGraph.py", line 84, in run_file self.scan_node(m) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ site-packages/macholib/MachOGraph.py", line 110, in scan_node m = self.load_file(filename, caller=node) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ site-packages/macholib/MachOGraph.py", line 93, in load_file newname = self.locate(name, loader=caller) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ site-packages/macholib/MachOStandalone.py", line 23, in locate newname = super(FilteredMachOGraph, self).locate(filename, loader) File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/ site-packages/macholib/MachOGraph.py", line 49, in locate loader=loader.filename) TypeError: dyld_find() got an unexpected keyword argument 'loader' 
+6
source share
2 answers

This is a temporary solution, and it may break other things. I would recommend making this a virtual environment so that you don't mess up your regular packages. This worked for me (virtenv is the name of my virtual environment)

Open the file /virtenv/lib/python3.4/site-packages/macholib/dyld.py and replace each instance of loader_path with loader . Now save and try again.

+5
source

You can use monoli-patch macholib rather than modifying it in site packages. Place the following file in the directory containing setup_py2app.py and add import macholib_patch to the beginning.

macholib_patch.py:

 """ Monkey-patch macholib to fix "dyld_find() got an unexpected keyword argument 'loader'". Add 'import macholib_patch' to the top of set_py2app.py """ import macholib #print("~"*60 + "macholib verion: "+macholib.__version__) if macholib.__version__ <= "1.7": print("Applying macholib patch...") import macholib.dyld import macholib.MachOGraph dyld_find_1_7 = macholib.dyld.dyld_find def dyld_find(name, loader=None, **kwargs): #print("~"*60 + "calling alternate dyld_find") if loader is not None: kwargs['loader_path'] = loader return dyld_find_1_7(name, **kwargs) macholib.MachOGraph.dyld_find = dyld_find 
+3
source

All Articles