Lion上的py2app正在创建没有python框架或资源的空应用程序

2024-09-26 18:19:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,在升级到Lion之前,我已经成功地将其打包到py2app中。在

现在,当我运行py2app时,它完成了,没有出现错误,但是得到的.app只有216K,执行时它会抱怨缺少objc(这是脚本中的第一个导入)。在

py2app输出:

running py2app
creating /Users/byron/Dropbox/dev/Hours-Worked/build
creating /Users/byron/Dropbox/dev/Hours-Worked/build/bdist.macosx-10.7-intel
creating /Users/byron/Dropbox/dev/Hours-Worked/build/bdist.macosx-10.7-intel/python2.7-semi_standalone
creating /Users/byron/Dropbox/dev/Hours-Worked/build/bdist.macosx-10.7-intel/python2.7-semi_standalone/app
creating /Users/byron/Dropbox/dev/Hours-Worked/build/bdist.macosx-10.7-intel/python2.7-semi_standalone/app/collect
creating /Users/byron/Dropbox/dev/Hours-Worked/build/bdist.macosx-10.7-intel/python2.7-semi_standalone/app/temp
creating /Users/byron/Dropbox/dev/Hours-Worked/dist
creating build/bdist.macosx-10.7-intel/python2.7-semi_standalone/app/lib-dynload
creating build/bdist.macosx-10.7-intel/python2.7-semi_standalone/app/Frameworks
*** using recipe: virtualenv ***
*** filtering dependencies ***
376 total
372 filtered
0 orphaned
4 remaining
*** create binaries ***
*** byte compile python files ***
byte-compiling /Library/Python/2.7/site-packages/py2app-0.6.3-py2.7.egg/py2app/bootstrap/boot_app.py to boot_app.pyc
byte-compiling /Library/Python/2.7/site-packages/py2app-0.6.3-py2.7.egg/py2app/bootstrap/chdir_resource.py to chdir_resource.pyc
byte-compiling /Library/Python/2.7/site-packages/py2app-0.6.3-py2.7.egg/py2app/bootstrap/disable_linecache.py to disable_linecache.pyc
byte-compiling /Users/byron/Dropbox/dev/Hours-Worked/hours-worked.py to hours-worked.pyc
*** creating application bundle: Hours-Worked ***
copying hours-worked.py -> /Users/byron/Dropbox/dev/Hours-Worked/dist/Hours-Worked.app/Contents/Resources
creating /Users/byron/Dropbox/dev/Hours-Worked/dist/Hours-Worked.app/Contents/Resources/lib
creating /Users/byron/Dropbox/dev/Hours-Worked/dist/Hours-Worked.app/Contents/Resources/lib/python2.7
copying build/bdist.macosx-10.7-intel/python2.7-semi_standalone/app/site-packages.zip -> /Users/byron/Dropbox/dev/Hours-Worked/dist/Hours-Worked.app/Contents/Resources/lib/python2.7
creating /Users/byron/Dropbox/dev/Hours-Worked/dist/Hours-Worked.app/Contents/Resources/lib/python2.7/lib-dynload
creating /Users/byron/Dropbox/dev/Hours-Worked/dist/Hours-Worked.app/Contents/Frameworks
stripping Hours-Worked
stripping saved 15936 bytes (71424 / 87360)

运行应用程序:

^{pr2}$

生成的应用程序看起来像:

$ du -hs dist/Hours-Worked.app/Contents/*
  0B    dist/Hours-Worked.app/Contents/Frameworks
4.0K    dist/Hours-Worked.app/Contents/Info.plist
 76K    dist/Hours-Worked.app/Contents/MacOS
4.0K    dist/Hours-Worked.app/Contents/PkgInfo
132K    dist/Hours-Worked.app/Contents/Resources

它以前看起来像:

$ du -hs Hours-Worked.app/Contents/*
4.0M    Hours-Worked.app/Contents/Frameworks
4.0K    Hours-Worked.app/Contents/Info.plist
188K    Hours-Worked.app/Contents/MacOS
4.0K    Hours-Worked.app/Contents/PkgInfo
 12M    Hours-Worked.app/Contents/Resources

Tags: devbuildcreatingappdistcontentsusersmacosx
1条回答
网友
1楼 · 发布于 2024-09-26 18:19:13

如果没有看到您的setup.py文件,我的最佳猜测是您没有显式地包含PyObjC库。例如

from setuptools import setup

OPTIONS = {'argv_emulation': False,
           'includes': ['objc'],
          }
setup(
    app='myapp.app',
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

将强制py2app包含objc库。如果你已经在做了,看看你的设置.py脚本。在

相关问题 更多 >

    热门问题