7

わかりました-ここに行きます。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

これにより、2 つのサブディレクトリ (build と dist) が作成され、dist 内に hello.app というファイルがありました。GUI から起動しようとしましたが、起動して 1 秒もかからずに消えてしまいました。次にCLに行きましたが、単に実行しようとしてもうまくいかなかったので、次を使用しました:

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'],
)
4

3 に答える 3

9

py2app の使用に成功しました - 開いて "hello" を出力し、すぐに閉じます!

何かを見たい場合は、少し一時停止します。

print "Hello"
import time
time.sleep(5)

time.sleepは、指定された秒数だけプログラムを一時停止します。

于 2011-04-09T19:03:55.557 に答える
5

py2app は、GUI アプリまたはバックグラウンドで実行されるアプリでのみ使用する必要があります。

py2app でビルドされたアプリケーションをコマンド ラインから実行する場合は、アプリケーション バンドル内のバイナリを実行する必要があります。バンドル自体は直接実行可能ではないため、次のようになります。

dist/hello.app/Contents/MacOS/hello

stdout に出力するだけのスクリプトの場合は、 Platypusを試すことができます(ただし、py2app の依存関係のパッケージ化は行いません)。

于 2011-04-09T19:07:59.427 に答える
1

それはずっと動いていたようです - スクリプトは非常に速く実行されていたので、私はそれを見る機会がありませんでした. 誰かがこれに遭遇した場合は、http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.htmlにアクセスしてチュートリアルに従ってください。与えられた回答と私が残した返信も読んでください。

于 2011-04-09T19:16:26.723 に答える