首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >py2app中的错误封装程序

py2app中的错误封装程序
EN

Stack Overflow用户
提问于 2014-01-14 06:01:08
回答 1查看 755关注 0票数 0

我有一个用python 3.3编写的程序,我希望能够在不需要用户安装python或任何其他模块的情况下发布。我成功地在Windows上使用cx_Freeze打包了这个程序,但是OS上的同一个脚本产生了一个不启动的应用程序。

我认为使用py2app可能会更幸运,但现在我遇到了一个奇怪的问题。这个程序会打开(它有一个用tkinter构建的图形用户界面),并且在Alias模式下完美地运行。然而,当我试图构建最终构建时,我会在终端中得到以下消息:

代码语言:javascript
复制
error: No such file or directory: /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/setuptools-2.1-py3.3.egg/_markerlib/__init__.pyc

我导航到该目录,发现一个无法打开或解压缩的.egg文件。我尝试过重新安装安装工具,以及python本身,但没有成功。有人经历过这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2014-01-14 22:54:31

看起来问题就在于你的setuptools不知怎么坏了。

为了打开鸡蛋文件,我尝试下载一个第三方工具,它崩溃了,并将它重命名为.zip,但失败了。如果我只需双击它,就会弹出“选择默认应用程序”。

双击它依赖于扩展来决定要启动哪个应用程序。

检查某个文件是否有效的最佳方法是使用命令行中的unzip工具。例如:

代码语言:javascript
复制
$ unzip -t setuptools.egg

这将检查所有压缩头,检查存档中所有文件的CRC,并报告任何错误。或者,如果它根本不是一个拉链,它会在一开始报告一个错误。

您还可以使用file命令快速检查它是否是某种著名的文件类型。如果file /path/to/setuptools-whatever.egg只是说“数据”而不是"Zip归档数据“,那么它很可能是无法识别的。

无论如何,假设您的setuptools安装没有附带python.org安装(如果您使用的是python.org二进制安装程序,它没有),最安全的做法是卸载它,然后干净地重新安装它。

首先卸载很重要的原因是,默认情况下,当前版本不会安装.egg存档,而是会安装一个普通解压缩包和鸡蛋-info目录,这意味着它可能不会覆盖旧的、损坏的副本。

文档盖卸载。只需从您的setuptools (以及您的sys.path上的其他任何地方)中删除setuptools*文件和其他任何名为setuptools*的文件即可。如果你的distribute也在那里,也杀了它。这将在其他地方留下一些文件(特别是在您的路径上的某个地方的easy_install-3.3 ),但是它们会被安装正确地覆盖,所以这没关系。

要安装,只需按照常用指令重新安装:

代码语言:javascript
复制
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python

…或者,如果您没有对站点包的书面访问权限:

代码语言:javascript
复制
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | sudo python

如果您使用pip,您可能希望在重新安装setuptools之后重新安装它,然后再重新安装pip install -U setuptools pip,以确保您有最新的版本--并验证一切都正常运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21106997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档