#python #frameworks #homebrew #py2app
#python #фреймворки #доморощенный #py2app
Вопрос:
Я пытаюсь использовать py2app для создания простого приложения Python на Mac. Я просто пытаюсь заставить py2app работать, поэтому прямо сейчас моя программа на Python выглядит так:
#!/usr/bin/env python
x = "hello"
print(x)
Я запускаю эти команды в терминале в соответствии с документацией py2app:
py2applet --make-setup MyApplication.py
python setup.py py2app -A
После того, как я запускаю их, я получаю это сообщение об ошибке.
MyApplication[57520:1908985] A Python runtime not could be located. You may need to install a framework build of Python, or edit the PyRuntimeLocations array in this application's Info.plist file.
Просматривая Info.plist, это PyRuntimeLocations:
@executable_path/../Frameworks/libpython3.7.dylib
/Users/me/opt/anaconda3/lib/libpython3.7.dylib
У меня установлен Python, и я также попытался установить его через homebrew (потому что я видел это как решение для кого-то другого), но у меня это не работает. Я также пытался отредактировать список, но это также ни к чему меня не привело.
Есть идеи, как я мог бы заставить это работать?
Спасибо
Ответ №1:
Я заметил, что у вас установлена anaconda благодаря этому
/Users /me/opt /anaconda3/ lib / libpython3.7.dylib
У меня была такая же проблема, и я только что решил ее.
Я заметил, что в моем терминале появился этот (базовый) тег в терминале
И это выдало мне ту же ошибку, что не удалось найти среду выполнения Python. Сначала я попытался выполнить весь свой проект в виртуальной среде под управлением python 3.9, и когда я добрался до
$ python setup.py py2app -A
Он выдал мне ту же ошибку, но заметил, что мой терминал выглядел так (env) (базовые) теги
Как бы используя две виртуальные среды, поэтому в вашем терминале сначала запустите $ your_environment deactivate
, если вы используете виртуальную среду, а затем запустите $ conda deactivate
, что выведет вас из базовой среды, в которую вы попадаете по умолчанию.
И, наконец, вы повторяете процесс
$ python setup.py py2app -A
Что происходит, так это то, что если вы находитесь в conda (базовом) venv, он будет искать фреймворк в каталоге opt без особого успеха, но на самом деле я также рекомендую вам использовать виртуальную среду для вашего проекта, поскольку вы можете использовать любую версию python, которую вы хотите, и это похоже на целую версию, упакованную в каталог со всеми библиотеками, которые вам нужны, чтобы ваше приложение было более независимым от этого.
Если вы никогда не использовали его, не волнуйтесь, это довольно просто, я только что узнал это сам два дня назад, чтобы решить точно такую же проблему.
Надеюсь, я помог 🙂