我在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文件無法正常工作。