как я могу использовать py2app? - PullRequest
7 голосов
/ 09 апреля 2011

Хорошо - здесь идет.Я пытаюсь научиться использовать py2app, поэтому я создал простой файл Python;just 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.Я попытался запустить его через графический интерфейс, но он запустился менее чем за секунду, а затем исчез.Затем я пошел в 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'

Я потратил весь день на поиски в Googleно я не могу найти учебники или руководства и т. д. Я действительно застрял: - (

Я не знаю, помогает ли это, но это то, что находится в 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 ]

10 голосов
/ 09 апреля 2011

Вы успешно использовали py2app - он просто открывается, печатает «привет», а затем очень быстро закрывается!

Если вы хотите что-то увидеть, сделайте паузу немного:

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

time.sleep приостанавливает программу на указанное количество секунд.

5 голосов
/ 09 апреля 2011

Вы действительно хотите использовать py2app только с приложениями с графическим интерфейсом или приложениями, работающими в фоновом режиме.

Если вы хотите запустить приложение, созданное py2app, из командной строки, вам нужно выполнить двоичный файл внутрикомплект приложений;сам пакет не является исполняемым напрямую, поэтому что-то вроде этого:

dist/hello.app/Contents/MacOS/hello

Для сценариев, которые просто печатают на стандартный вывод, вы можете попробовать Platypus (хотя он не выполняет упаковку зависимостей)вещи из py2app).

1 голос
/ 09 апреля 2011

Кажется, он работал все время - скрипт работал так быстро, что у меня не было возможности его увидеть.Если кто-то сталкивался с этим, перейдите на http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html и следуйте инструкции.Пожалуйста, прочитайте также ответы и ответы, которые я оставил.

...