Py2App:Alias模式有效,但部署没有

时间:2014-09-22 20:09:18

标签: python py2app

我正在尝试使用py2app部署我的python应用程序。

我使用:py2applet --make-setup MyApplication.py

创建了设置文件

然后我这样做是为了测试它:python setup.py py2app -A

这也很有效。我的GUI程序运行。

当我尝试最后一步时:python setup.py py2app

我得到了这个胖子。

Traceback (most recent call last):
  File "setup.py", line 18, in <module>
    setup_requires=['py2app'],
  File "/usr/local/Cellar/python/2.7.8_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/usr/local/Cellar/python/2.7.8_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/local/Cellar/python/2.7.8_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python2.7/site-packages/py2app/build_app.py", line 659, in run
    self._run()
  File "/usr/local/lib/python2.7/site-packages/py2app/build_app.py", line 865, in _run
    self.run_normal()
  File "/usr/local/lib/python2.7/site-packages/py2app/build_app.py", line 959, in run_normal
    self.create_binaries(py_files, pkgdirs, extensions, loader_files)
  File "/usr/local/lib/python2.7/site-packages/py2app/build_app.py", line 1214, in create_binaries
    platfiles = mm.run()
  File "/usr/local/lib/python2.7/site-packages/macholib/MachOStandalone.py", line 105, in run
    mm.run_file(fn)
  File "/usr/local/lib/python2.7/site-packages/macholib/MachOGraph.py", line 84, in run_file
    self.scan_node(m)
  File "/usr/local/lib/python2.7/site-packages/macholib/MachOGraph.py", line 110, in scan_node
    m = self.load_file(filename, caller=node)
  File "/usr/local/lib/python2.7/site-packages/macholib/MachOGraph.py", line 93, in load_file
    newname = self.locate(name, loader=caller)
  File "/usr/local/lib/python2.7/site-packages/macholib/MachOStandalone.py", line 23, in locate
    newname = super(FilteredMachOGraph, self).locate(filename, loader)
  File "/usr/local/lib/python2.7/site-packages/macholib/MachOGraph.py", line 49, in locate
    loader=loader.filename)
TypeError: dyld_find() got an unexpected keyword argument 'loader'

为什么会这样?我花了最后几个小时试图部署。没有运气py2app,cx_freeze等等。

2 个答案:

答案 0 :(得分:2)

以下是解决方法:编辑文件MachOGraph.py,在您的情况下位于:

/usr/local/lib/python2.7/site-packages/macholib/MachOGraph.py

搜索字词loader=loader.filename)并将其替换为loader_path=loader.filename)

来自 David Goldenberg 的信用证在bitbucket.org上发布。 https://bitbucket.org/ronaldoussoren/py2app/issues/137/py2app-problems-using-enthought-python

答案 1 :(得分:1)

枕头是问题所在。 Py2Applet不能很好用。摆脱了枕头,一切都很好。