簡體   English   中英

py2app問題,出現錯誤

[英]py2app problems, getting errors

我正在嘗試測試py2app的功能,以創建獨立的mac應用程序。 我為測試代碼生成了一個名為“ hello.py”的安裝文件。

"""
This is a setup.py script generated by py2applet

Usage:
python setup.py py2app
"""

from setuptools import setup

APP = ['hello.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True}

setup(
   app=APP,
   data_files=DATA_FILES,
   options={'py2app': OPTIONS},
   setup_requires=['py2app'],
)

而且我正在嘗試制作一個簡單的應用程序,該應用程序僅使用GUI來向您問好世界。 這是hello.py的代碼

import sys
from PyQt4 import QtGui
from PyQt4 import QtCore

app = QtGui.QApplication(sys.argv)

widget = QtGui.QLabel("Hello World")
widget.show()


app.exec_()

上面的腳本運行得很好,但是當我嘗試使用py2app時,出現了一些錯誤。 當我運行'python setup.py py2app'

WARNING: ImportError in sip recipe ignored: No module named py2app-0
WARNING: ImportError in sip recipe ignored: No module named Sphinx-1
WARNING: ImportError in sip recipe ignored: No module named decorator-4
WARNING: ImportError in sip recipe ignored: No module named altgraph-0
WARNING: ImportError in sip recipe ignored: No module named matplotlib-1
WARNING: ImportError in sip recipe ignored: No module named alabaster-0
WARNING: ImportError in sip recipe ignored: No module named modulegraph-0
WARNING: ImportError in sip recipe ignored: No module named Jinja2-2
WARNING: ImportError in sip recipe ignored: No module named jedi-0
WARNING: ImportError in sip recipe ignored: No module named pickleshare-0
WARNING: ImportError in sip recipe ignored: No module named macholib-1
WARNING: ImportError in sip recipe ignored: No module named Babel-1
WARNING: ImportError in sip recipe ignored: No module named sphinx_rtd_theme-0
WARNING: ImportError in sip recipe ignored: No module named pip-7
WARNING: ImportError in sip recipe ignored: No module named wheel-0
WARNING: ImportError in sip recipe ignored: No module named python_dateutil-2

發生這些錯誤后,它的py2app似乎可以正常運行,但是應用程序本身不起作用。 這里發生了什么? 我該如何解決?

這也是終端輸出的最后一行。

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

有一個小技巧可以解決這個問題,

  1. 轉到您的路徑/Users/Apollo/miniconda/lib/python2.7/site-packages/macholib/MachOGraph.py並打開此文件。
  2. 在第49行,將loader=loader.filename更改為loader_path=loader.filename

再次運行setup.py。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM