Проблемы с Py2app

Я создал скрипт Python, который использует графический интерфейс tkinter, я попытался упаковать его с помощью py2app. Моя проблема в том, что я не знаю, как включить модуль tkinter. Я попытался упаковать свой скрипт без модуля, но все, что я получаю, это сообщение консоли, в котором говорится: «ImportError: нет модуля с именем tkinter».


person Community    schedule 14.03.2013    source источник
comment
Какую версию питона вы используете?   -  person TerryA    schedule 14.03.2013
comment
Я использую Python 3.3 для Mac   -  person    schedule 14.03.2013
comment
Работает ли пример tkinter в репозитории py2app?   -  person Ronald Oussoren    schedule 15.03.2013
comment
Нет, выдает ту же ошибку   -  person    schedule 18.03.2013
comment
Как вы установили Python и tkinter? (Установщик Python.org, самостоятельная сборка, самодельный,…)?   -  person Ronald Oussoren    schedule 18.03.2013
comment
Я использовал установщик Python-3.3.0-MacOSX10.6.   -  person    schedule 18.03.2013


Ответы (3)


Следующий сценарий setup.py должен подойти для базового сценария на основе Tkinter (замените «hello.py» на имя фактического сценария).

from setuptools import setup

setup(
    app=['hello.py'],
    setup_requires=["py2app"],
)

Это скрипт setup.py из примера hello_tk от py2app

ОБНОВИТЬ:

Позже вы упоминаете, что tkinter также нельзя импортировать «извне» приложения py2app, и что расширение _tkinter (_tkinter.so) не существует. Это означает, что что-то не так с вашей установкой Python 3.3.

person Ronald Oussoren    schedule 15.03.2013
comment
Я бы подумал, что это сработает, но, как оказалось, это не так, просто возвращает ту же ошибку. - person ; 18.03.2013
comment
Я не знаю, почему у вас не получается, я не смог воспроизвести проблему :-(. - person Ronald Oussoren; 26.03.2013
comment
И чтобы исключить очевидное: работает ли tkinter из командной строки (то есть когда вы запускаете свой скрипт без использования py2app для создания пакета приложений)? - person Ronald Oussoren; 26.03.2013
comment
Нет, он возвращает эту ошибку: Traceback (последний последний вызов): файл aspect.py, строка 1, в «модуле» из импорта tkinter * ImportError: нет модуля с именем tkinter - person ; 03.04.2013
comment
Это нужно исправить в первую очередь. На что следует обратить внимание: (1) работает ли «import _tkinter»? (2) Существует ли /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/lib-dynload/_tkinter.so (при условии, что вы используете двоичный установщик на www.python.org)? (3) Существуют ли файлы, упомянутые в выводе otool -vL /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/lib-dynload/_tkinter.so? - person Ronald Oussoren; 04.04.2013
comment
Итак, 'import _tkinter' возвращает ошибку Traceback (последний последний вызов): Файл /Users/student/Aspect.py, строка 49, в ‹module› root = Tk() NameError: имя 'Tk' не определено - person ; 08.04.2013
comment
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/lib-dynload/_tki‌​nter.so существует, и я не уверен, что вы имеете в виду под последним - person ; 08.04.2013

Чтобы связать приложение, я предполагаю, что вы поместите это в терминал:

$ python setup.py py2app

У меня тоже была такая же проблема, и я рыскал в Интернете в поисках решения. Я также запускаю Python 3.3 на Mac. После того, как я поставил это:

$ python3 setup.py py2app

Оно работало завораживающе! Надеюсь это поможет!

person tsgsteele    schedule 19.11.2015

один из способов упаковать приложение — запустить эту команду:

    py2applet --make-setup filename.py

Затем вы можете запустить:

    python3 setup.py py2app -A
person Ajax1234    schedule 24.01.2017