如何使用py2app?
好的,开始吧。我正在学习如何使用py2app,所以我创建了一个简单的Python文件,叫做hello_world.py。
#! /usr/bin/env python
def main():
print "Hello"
if __name__=="__main__":
main()
我跟着一个教程做了以下步骤:
py2applet --make-setup hello.py
python setup.py py2app -A
这一步创建了两个子目录(build和dist),在dist文件夹里有一个叫hello.app的文件。我试着通过图形界面打开它,但它只显示了一秒钟就消失了。然后我去命令行尝试运行它,但直接运行也不行,所以我用了:
python hello.app
结果出现了以下错误:
/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python: can't find '__main__.py' in 'hello.app'
我整整一天都在网上搜索,但找不到任何教程或指南,我真的很困惑 :-(
我不知道这是否有帮助,但这是setup.py里的内容:
"""
This is a setup.py script generated by py2applet
Usage:
python setup.py py2app
"""
from setuptools import setup
APP = ['hello.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
3 个回答
1
看起来这个脚本一直都在正常工作,只是它运行得太快了,我没来得及看到。如果有人遇到这个问题,可以去 http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html 看一下教程。同时也请阅读一下其他人给出的回答和我留下的回复。
5
你其实只想在图形界面应用程序或者后台运行的程序中使用py2app。
如果你想从命令行运行用py2app打包的应用程序,你需要在应用程序包里面找到可执行的文件;因为整个包不能直接运行,所以你需要这样做:
dist/hello.app/Contents/MacOS/hello
对于那些只是输出信息到控制台的脚本,你可以试试Platypus(不过它不处理像py2app那样的依赖打包问题)。
9
你已经成功使用了py2app - 它会打开,打印“hello”,然后很快就关闭了!
如果你想看到一些东西,可以让它暂停一下:
print "Hello"
import time
time.sleep(5)
time.sleep 是让程序暂停指定秒数的一个方法。