使我的 python 程序成为真正的应用程序
Making my python program a real application
使用此处的简单说明https://www.metachris.com/2015/11/create-standalone-mac-os-x-applications-with-python-and-py2app/
我现在在 dist 中有一个应用程序文件。但是,当我打开它时,我收到一条警告,除了
App Error, Open Console or Terminate
我的程序是一个 python 文件,它导入了许多模块(opencv
、tkinter
等等)。当我从控制台 运行 它时 (python app.py
) 它工作得很好,打开我的 tkinter
window,等等
那么首先,可能出了什么问题?而且,这实际上应该如何工作,该应用程序是否也包含所有 opencv? python 模块如何包含在这样的便携式应用程序中?
感谢您的帮助/指导。
不止一问!
没关系。
- 当您使用 Apple 提供的 Python 解释器构建应用程序时,您会得到半独立的应用程序。
启动此类应用程序时,它会运行 Apple 内置的 Python 并使用其标准库。
任何非标准模块都应该包含,但经常会遇到问题。
- 当您从 python.org 安装 Python 并将所有其他库安装到其中时,您将继续使用它制作应用程序,而不是使用 Apple 的 Python、
然后整个解释器连同标准库以及您导入的任何其他内容一起打包。
尽管它可以生成更大的应用程序,但它通常很有用。但现在,它不是这样的灾难。
它是如何工作的? py2app、py2exe 和类似工具检查 python 代码树中的导入语句。
然后找到的所有依赖项都包含在包中。
有问题的部分是使用 import() 或 reload() 函数的动态导入。对于此类模块,您必须明确告诉 py2app 将它们打包。
有时在您的应用中向其添加静态导入就足够了,例如:
if 0:
import site
OpenCV,嗯,祝你好运!它有时会给 C++ 的正确 link 路径带来生活噩梦,我希望将它与 Python 一起打包到应用程序中会起作用。
我没用过,不知道你有多大的困扰
使用 /Applications/Utilities/Console.app 查看您的应用程序打包后发送到 stderr/stdout 的任何错误和回溯。您可能会在那里找到一些有用的信息。
但我建议您下载自定义 Python 解释器并制作完整的独立应用程序。
没什么大不了的。只需用它而不是内置的调用 setup.py。
并搜索您必须添加到 setup.py 中的内容以正确打包 OpenCV,如果它是您遇到麻烦的原因。
使用此处的简单说明https://www.metachris.com/2015/11/create-standalone-mac-os-x-applications-with-python-and-py2app/
我现在在 dist 中有一个应用程序文件。但是,当我打开它时,我收到一条警告,除了
App Error, Open Console or Terminate
我的程序是一个 python 文件,它导入了许多模块(opencv
、tkinter
等等)。当我从控制台 运行 它时 (python app.py
) 它工作得很好,打开我的 tkinter
window,等等
那么首先,可能出了什么问题?而且,这实际上应该如何工作,该应用程序是否也包含所有 opencv? python 模块如何包含在这样的便携式应用程序中?
感谢您的帮助/指导。
不止一问!
没关系。
- 当您使用 Apple 提供的 Python 解释器构建应用程序时,您会得到半独立的应用程序。
启动此类应用程序时,它会运行 Apple 内置的 Python 并使用其标准库。
任何非标准模块都应该包含,但经常会遇到问题。
- 当您从 python.org 安装 Python 并将所有其他库安装到其中时,您将继续使用它制作应用程序,而不是使用 Apple 的 Python、
然后整个解释器连同标准库以及您导入的任何其他内容一起打包。
尽管它可以生成更大的应用程序,但它通常很有用。但现在,它不是这样的灾难。
它是如何工作的? py2app、py2exe 和类似工具检查 python 代码树中的导入语句。
然后找到的所有依赖项都包含在包中。
有问题的部分是使用 import() 或 reload() 函数的动态导入。对于此类模块,您必须明确告诉 py2app 将它们打包。
有时在您的应用中向其添加静态导入就足够了,例如:
if 0:
import site
OpenCV,嗯,祝你好运!它有时会给 C++ 的正确 link 路径带来生活噩梦,我希望将它与 Python 一起打包到应用程序中会起作用。
我没用过,不知道你有多大的困扰
使用 /Applications/Utilities/Console.app 查看您的应用程序打包后发送到 stderr/stdout 的任何错误和回溯。您可能会在那里找到一些有用的信息。
但我建议您下载自定义 Python 解释器并制作完整的独立应用程序。 没什么大不了的。只需用它而不是内置的调用 setup.py。
并搜索您必须添加到 setup.py 中的内容以正确打包 OpenCV,如果它是您遇到麻烦的原因。