Невозможно выполнить на терминале приложение Ma c, созданное с помощью tkinter и py2app - PullRequest
0 голосов
/ 07 мая 2020

Я использую Python 3.7 и IDLE IDE на моем Ma c под управлением Catalina 10.15.4.

Я пытаюсь создать простое приложение, используя tkinter и py2app. На этом этапе у меня есть простой скрипт heatmap.py, который использует tkinter, принимает в качестве входных данных квадратную матрицу, например [[1,2], [3,4]] и создает тепловую диаграмму в новом окне. Файл работает нормально.

Более того, если я создам файл heatmap.command, сначала вставив #! / Usr / bin / env python3 в начало файла .py, переименовав heatmap.py в heatmap.command и набрав chmod + x heatmap.command на терминале, файл будет нормально работать, набрав ./heatmap.command на терминале.

Итак, теперь я пытаюсь создать приложение с помощью py2app, следуя указаниям в https://py2app.readthedocs.io/en/latest/tutorial.html следующим образом, предполагая, что я изменил каталоги на терминале, чтобы они работали в одном содержащий heatmap.py:

py2applet --make-setup heatmap.py

rm -rf build dist

python setup.py py2app -A

Работает без сообщений об ошибках. В моем текущем каталоге я вижу папку, содержащую приложение под названием тепловая карта. Перед сборкой для развертывания (путем ввода python setup.py py2app) я попытался запустить приложение на терминале:

./dist/heatmap.app/Contents/MacOS/heatmap

Это привело к сообщению об ошибке, указывающему, что «tkinter не может быть найден».

Я заметил, что /Library/Frameworks/Python.framework/Versions/3.7/lib/Python3.7/site-packages не содержит tkinter. Однако каталог на один уровень выше, /Library/Frameworks/Python.framework/Versions/3.7/lib/Python3.7, действительно содержал его.

В качестве первой попытки адресовать сообщение я просто скопировал папку tkinter в папку site-packages. Это не сработало.

Итак, я попытался установить его снова двумя разными способами:

  1. В терминале: pip install tkinter
  2. Используя IDLE:

    а. Сначала определите системный исполняемый путь, полученный в IDLE с помощью команды sys; sys.executable, который вернул '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7'

    b. Затем введите /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -m pip install tkinter

Метод 2 - это то, как я установил множество другие пакеты, использующие IDLE. В обоих случаях я получил следующее сообщение об ошибке:

ОШИБКА: не удалось найти версию, удовлетворяющую требованию tkinter (из версий: нет) ОШИБКА: не найдено подходящего распределения для tkinter

Имеет это значит, что 3.7 не поддерживает tkinter? Я не думал, что это так, или, может быть, я делаю какую-то ошибку?

1 Ответ

0 голосов
/ 07 мая 2020

Я обновил свою версию ОС python с 2.7.16 до 3.7, используя инструкции, опубликованные на

https://dev.to/malwarebo/how-to-set-python3-as-a-default-python-version-on-mac-4jjf

Затем все заработало. Я также смог развернуть приложение и открыть его, просто дважды щелкнув heatmap.app.

...