使用py2app在(Mac OS 10.10)上将python脚本编译到Mac应用程序时出错 编译一直运行到结束,但给出错误信息。
设置脚本:
from setuptools import setup
APP = ['Main.py']
OPTIONS = {'iconfile':'LOGO.icns',}
setup(
app = APP,
options = {'py2app': OPTIONS},
setup_requires = ['py2app'],
)
在主脚本上我只导入3个模块:
import os
from tkFileDialog import askdirectory
from Tkinter import Tk
我在终端中运行安装脚本,它创建了2个文件夹(build和Dist),但是Dist内的app文件没有做任何事情,甚至没有错误信息。
当我正在编译时,我会在“完成”之前收到此错误:
未找到模块(无条件导入):
* 主要。需要(pdb)
* _weakref.CallableProxyType(_weakrefset)
* _weakref.ProxyType(_weakrefset)
* _weakref.ReferenceType(_weakrefset)
* _weakref.getweakrefcount(_weakrefset)
* _weakref.getweakrefs(_weakrefset)
* _weakref.proxy(_weakrefset)
* errno.EINVAL(os)
* errno.ENOENT(os)
* java.System(java.lang)
* nt._getfullpathname(os)
* nt._isdir(os)
* org(copy,org.python.core)
* org.PyStringMap(org.python)
* org.python(copy,pickle)
* org.python.core(pickle)
* org.python.core.PyStringMap(copy)
* pwd.getpwnam(getpass)
* sys.py3kwarning(os)
* thread._local(collections)
* thread.allocate_lock(collections)
* thread.stack_size(collections)
* urllib.parse(pkg_resources)未找到模块(条件导入):
* _md5(hashlib)
* _sha(hashlib)
* importlib._bootstrap(pkg_resources)
* java(平台) * java.lang(平台)
* riscospath(os)
如果我直接从终端运行主脚本,主脚本就可以工作。
任何想法??
答案 0 :(得分:1)
这似乎是由太长的路径造成的。
My application is in a path 61 chars long:
$ pwd|wc -c
61
我收到此错误:
找不到模块(条件导入):* importlib._bootstrap (通过pkg_resources)
如果我删除路径中的几个字符,构建就会起作用:
$ pwd|wc -c
59