Я пытаюсь создать приложение на основе python 3.7.7 на Ma c ОС Catalina 10.15, используя pyinstaller 3.6. Я установил python, используя Homebrew и pyinstaller с pip.
Этот python код с именем GUI .py нуждается в пяти изображениях, которые хранятся в папке с именем "resources", и все находится внутри " Проект ». Таким образом, структура проекта выглядит следующим образом:
Проект:
- GUI .py
- ресурсы:
- image1.png
- image2.png
- image3.png
- image4.png
- image5.png
Путь, который GUI .py использует для поиска изображений, подобен «resources / image1.png», «resources / image2.png» и т. Д. Для остальных изображений.
Я открываю терминал и введите следующее:
pyinstaller --add-data /Users/user/Desktop/Project/resources/*:resources /Users/user/Desktop/Project/GUI.py
Затем создаются папки dist и build, а также файл GUI .spe c.
Проблема появляется, когда я go в папку dist / GUI и я нахожу исполняемый файл. Я дважды щелкаю по нему, чтобы открыть приложение, но появляется следующая ошибка:
FileNotFoundError: [Errno2] No such file or directory: 'resources/image1.png'
Однако, если я открою терминал и go в каталог dist / GUI, где находится GUI исполняемый файл расположен и выполняется вручную:
./GUI
он отлично работает и приложение открывается.
Это происходит так же, когда я добавляю опцию --nocnosole
к инструкции pyinstaller:
pyinstaller --add-data /Users/user/Desktop/Project/resources/*:resources --noconsole /Users/user/Desktop/Project/GUI.py
Это создает приложение ОС Ma c с именем GUI, которое не открывается, когда я нажимаю на него. Но, как и раньше, если я открываю терминал и go для GUI / Contents / MacOS /, я нахожу GUI возможным и запускаю его вручную:
./GUI
затем он работает нормально.
Я не знаю, правильно ли я добавляю папку ресурсов, содержащую изображения, или это проблема ОС Ma c с pyinstaller.
Я добавляю некоторые заметки с дополнительной информацией:
- Я проделал тот же процесс в Windows 10 и Ubuntu 18.04.1, и он работает отлично. Я могу создать исполняемый файл, содержащийся в папке dist, и экспортировать его на другие компьютеры, и он просто работает.
- Я использовал другой способ добавления данных в команду pyinstaller, но он не работает:
pyinstaller --add-data /Users/user/Desktop/Project/:. /Users/user/Desktop/Project/GUI.py
- Я следовал решениям, предоставленным в Pyinstaller, добавляя файлы данных , но ничего не работает
- Приложение python представляет собой графический интерфейс пользователя c, использующий tkinter, pyserial и PIL , Кроме того, я использовал пользовательские пакеты, которые я добавил с параметром -p в команде pyinstaller, но здесь он опущен, так как он не является источником ошибок.
Я везде искал решение, прочитал документацию, которая pyinstaller предоставляет ссылки на добавление данных, но я ничего не нашел.