py2app не может найти фреймворк Python

#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, которую вы хотите, и это похоже на целую версию, упакованную в каталог со всеми библиотеками, которые вам нужны, чтобы ваше приложение было более независимым от этого.
Если вы никогда не использовали его, не волнуйтесь, это довольно просто, я только что узнал это сам два дня назад, чтобы решить точно такую же проблему.

Надеюсь, я помог 🙂