Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mac的打包Python程序在下载时不会运行_Python_Macos_File Upload_Compression_Runtime Error - Fatal编程技术网

Mac的打包Python程序在下载时不会运行

Mac的打包Python程序在下载时不会运行,python,macos,file-upload,compression,runtime-error,Python,Macos,File Upload,Compression,Runtime Error,我用py2app打包了Python程序,这样程序query\u agent.py就变成了query\u agent.app。我有一个Java程序,它通过以下命令启动query\u agent.app: 打开./query\u agent.app--args abs\u path1 abs\u path2 ,其中abs_路径1和abs_路径2是字符串参数 我把所有东西都放在一个文件夹中,当我启动JAR并最终启动query\u agent.app时,所有东西都像预期的那样完美运行 所以我压缩了这个文

我用py2app打包了Python程序,这样程序
query\u agent.py
就变成了
query\u agent.app
。我有一个Java程序,它通过以下命令启动
query\u agent.app

打开./query\u agent.app--args abs\u path1 abs\u path2

,其中
abs_路径1
abs_路径2
是字符串参数

我把所有东西都放在一个文件夹中,当我启动JAR并最终启动
query\u agent.app
时,所有东西都像预期的那样完美运行

所以我压缩了这个文件夹,这样我就可以把它分发给其他人。在发送之前,我将压缩文件放在闪存驱动器上,然后在另一台Mac电脑上解压以进行测试。同样,即使在解压缩时,程序也能按预期工作

但是,当我在电子邮件中以邮件附件的形式发送zip,或者将zip上传到MediaFire等文件托管站点时,解压后程序将不再工作。当我在任何Mac电脑上解压下载的zip文件时,右键单击并打开,我会收到以下消息:

查询代理错误

打开控制台时,会显示错误原因:

STATS\u FILE\u位置
指向我试图写入的文件。此文件位于query_agent.app/Contents/Resources/Resources。提醒一下,如果我在上传之前使用zip的版本,这就可以了

最后一行显示的主要错误如下所示:

OSError:[Errno 30]只读文件系统:“resources/status.txt”

我注意到的第一件事是它在/private/var/folder/中查找我的源文件。。。地点。我相信这是一个临时位置,这可能是我得到“只读文件系统”错误的原因。我从未打算从主应用程序文件夹之外的任何位置读取或写入任何内容

我也得到了信息:

检测到缺少的约束。无法放置它,因为没有足够的约束来完全定义尺寸和原点。添加缺少的约束,或设置translatesAutoResizengMaskintoConstraints=YES,将为您生成约束。如果此视图在macOS 10.12及更高版本上手动布局,您可以选择不从覆盖中调用[super layout]。在检测到的\u缺少\u约束上设置断点以进行调试。此错误将只记录一次

所以我的问题是:如果我上传、下载、解压,然后试着运行它,为什么我的程序不能工作?


在我把它上传到任何一台Mac电脑之前,它都能工作,所以它被压缩并不是问题所在。我希望这些模糊的错误消息可以提供一些提示,说明为什么会发生这种情况。如果您能帮助解决这个问题,我们将不胜感激

我也有同样的问题,可以确认它似乎不是包依赖或权限依赖。打包的应用程序可以通过物理媒体自由移动并在其他机器上运行,即使是压缩的,但正如OP发现的,如果通过“空中”分发,则不会运行,但同一房间的Mac-to-Mac AirDrop除外。