py2app Mach-O header error

天大地大妈咪最大 提交于 2019-12-25 16:55:33

问题


I am trying to use py2app on the following code:

print(1+1)

I create my setup with:

py2applet --make-setup test.py

Development with alias mode works fine:

python3 setup.py py2app -A

But when I try the standalone mode:

python3 setup.py py2app

I get after a lot of lines:

WARNING: Mach-O header in '/Users/quentinpeter/Documents/PHD/Python/People project/Michele_worms/dist/test.app/Contents/Resources/lib/python3.6/scipy/linalg/_interpolative.cpython-36m-darwin.so' may be too large to relocate
WARNING: Mach-O header in '/Users/quentinpeter/Documents/PHD/Python/People project/Michele_worms/dist/test.app/Contents/Resources/lib/python3.6/scipy/linalg/_interpolative.cpython-36m-darwin.so' may be too large to relocate
Traceback (most recent call last):
  File "setup.py", line 18, in <module>
    setup_requires=['py2app'],
  File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python3.6/site-packages/py2app/build_app.py", line 764, in run
    self._run()
  File "/usr/local/lib/python3.6/site-packages/py2app/build_app.py", line 974, in _run
    self.run_normal()
  File "/usr/local/lib/python3.6/site-packages/py2app/build_app.py", line 1082, in run_normal
    self.create_binaries(py_files, pkgdirs, extensions, loader_files)
  File "/usr/local/lib/python3.6/site-packages/py2app/build_app.py", line 1385, in create_binaries
    platfiles = mm.run()
  File "/usr/local/lib/python3.6/site-packages/macholib/MachOStandalone.py", line 146, in run
    node.write(f)
  File "/usr/local/lib/python3.6/site-packages/macholib/MachO.py", line 133, in write
    header.write(f)
  File "/usr/local/lib/python3.6/site-packages/macholib/MachO.py", line 343, in write
    self.synchronize_size()
  File "/usr/local/lib/python3.6/site-packages/macholib/MachO.py", line 333, in synchronize_size
    self.parent.filename, self.total_size + self.sizediff, self.low_offset, self.sizediff))
ValueError: New Mach-O header is too large to relocate in '/Users/quentinpeter/Documents/PHD/Python/People project/Michele_worms/dist/test.app/Contents/Resources/lib/python3.6/scipy/linalg/_interpolative.cpython-36m-darwin.so' (new size=1764, max size=1712, delta=108)

Do you have any idea what might happen? Most of the things I found online refers to MacPorts but I use homebrew.

info on my python:

Python 3.6.0 (default, Dec 24 2016, 08:01:42) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin

回答1:


I had the same problem and I fixed it by uninstalling the version of macholib that I had (1.8) and installing 1.7 with pip. When using python 2.7, reverting to scipy version 0.14.0 would fix it as well.



来源:https://stackoverflow.com/questions/41957806/py2app-mach-o-header-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!