【问题标题】:Py2App: Alias mode works, but deployment doesn'tPy2App:别名模式有效,但部署无效
【发布时间】:2014-09-22 20:09:18
【问题描述】:

我正在尝试使用 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 等都没有运气。

【问题讨论】:

    标签: python py2app


    【解决方案1】:

    这是一种解决方法:编辑文件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

    【讨论】:

      【解决方案2】:

      枕头是问题所在。 Py2Applet 不能很好地配合它。摆脱枕头,一切都很好。

      【讨论】:

      • 能否详细说明?
      • 我没有安装 Pillow,但仍然出现此错误。
      猜你喜欢
      • 2015-03-31
      • 1970-01-01
      • 2014-06-11
      • 2017-08-31
      • 1970-01-01
      • 2022-09-25
      • 2021-01-14
      • 2018-07-12
      • 1970-01-01
      相关资源
      最近更新 更多