我在python中使用python 3.6.2和Mac OS Sierra上的自制软件,并且我一直无法使用py2app v0.14创建功能包应用程序和pyinstaller v3.2.1。无法在Sierra上使用py2app和python创建功能应用程序包3.6.2
安装ActiveTcl版本8.5.18/tkinter。
标准2.7.10 python的Mac版本没有其他功能。我实际上设法做了一两次尝试与其他程序一起使用Python 2.7.10,但由于我想使用3.6.2,所以没有必要继续使用标准。
py2app创建一个.app文件,该文件只是给出“错误”,Mac要求终止。 pyinstaller甚至不创建一个.app文件。我遵循所有计划中的所有说明。创建的.app时
py2app给了我这个消息结尾:
Modules not found (unconditional imports):
* com (com.sun.jna)
* com.jna (com.sun)
* com.sun (com.sun.jna.platform)
* ordereddict (pkg_resources._vendor.pyparsing)
* win32com (win32com)
* win32com.shell (win32com.shell)
* win32com.shellcon (win32com.shell)
Modules not found (conditional imports):
* StringIO (pkg_resources._vendor.six)
* com (pkg_resources._vendor.appdirs)
* com.sun.jna (pkg_resources._vendor.appdirs)
* com.sun.jna.platform (pkg_resources._vendor.appdirs)
* win32com (pkg_resources._vendor.appdirs)
* win32com.shell (pkg_resources._vendor.appdirs)
我检查丢失模块,对我来说并不像程序正在尝试使用上面列出的任何模块。
我从互联网上检索到的节目,这是一个简单的测试程序,这里的脚本:
from tkinter import *
from tkinter import ttk
def calculate(*args):
try:
value = float(feet.get())
meters.set((0.3048 * value * 10000.0 + 0.5)/10000.0)
except ValueError:
pass
root = Tk()
root.title("Feet to Meters")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
feet = StringVar()
meters = StringVar()
feet_entry = ttk.Entry(mainframe, width=7, textvariable=feet)
feet_entry.grid(column=2, row=1, sticky=(W, E))
ttk.Label(mainframe, textvariable=meters).grid(column=2, row=2, sticky=(W, E))
ttk.Button(mainframe, text="Calculate", command=calculate).grid(column=3, row=3, sticky=W)
ttk.Label(mainframe, text="feet").grid(column=3, row=1, sticky=W)
ttk.Label(mainframe, text="is equivalent to").grid(column=1, row=2, sticky=E)
ttk.Label(mainframe, text="meters").grid(column=3, row=2, sticky=W)
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
feet_entry.focus()
root.bind('<Return>', calculate)
root.mainloop()
我已经试过卸载并重新安装蟒蛇,ActiveTcl,我已经运行BREW医生,似乎没有任何工作。 Pyenv工作正常。 Homebrew工作正常。
我到处搜索了两天,无论我每次做什么py2app创建.app文件,它只会给出“错误”。
当我运行IDLE时,该应用程序运行完美。什么问题可以?
编辑:经过一段时间的工作,我发现了python 3.6.2使用cx_freeze的解决方案。正如我之前所说,Py2app只能用于Python 2.7.10。出于某种原因,Py2app只在我使用Python 2.7.10运行时加载缺少的模块,当python 3.6.2进来时,他无法加载模块,并且.app文件无法正常工作。