Я использую Python 3 из дистрибутива Anaconda и пытаюсь преобразовать простую программу python в приложение OS X (работает на El Capitan). Следуя инструкции в the tutorial, я побежалКак использовать py2app с python Anaconda?
py2applet --make-setup my-script.py
python setup.py py2app -A
Все побежали отлично без ошибок, но когда я пытаюсь запустить приложение, я получаю сообщение об ошибке:
my-script: A python runtime not could (sic) be located. You may need to install a framework build of Python, or edit the PyRuntimeLocations array in this applications Info.plist file.
Я понял, что это значит, что я должен добавить путь к python Anaconda (который находится в моем bash PATH, но неизвестен для запуска). Тем не менее, приложение, автоматически сгенерированные Info.plist
уже указывает на питона двоичном Anaconda:
<key>PythonInfoDict</key>
<dict>
<key>PythonExecutable</key>
<string>/Applications/Experimental/anaconda/bin/python</string>
...
Я не вижу, что там исправить здесь. Я прочитал эти вопросы, связанные с:
- How do I use py2app with a virtual environment?
- py2app is not copying the python framework to the new app while using virutalenv
Первый вопрос предполагает то же самое сообщение об ошибке, и будет решена, следуя советам во втором вопросе. Но, как я понимаю, эти вопросы описывают противоположную ситуацию: OP работал под управлением python, распределенной с ОС, и хотел распространять свое приложение; решение заключается в использовании отдельно установленного python. I am с использованием несистемного питона, и я еще не пытаюсь распространять что-либо. Итак, что вызывает здесь проблемы, и каково решение?
Вы пытались запустить приложение, не используя опцию псевдонима (например, 'python setup.py py2app'), или' open -a dist/MyApplication.app'? –
Полезное предложение! 'open -a dist/my-script.app' завершается с ошибкой (« Не удается найти приложение с именем «dist/my-open.app»), но попытка полной сборки приложения (по-прежнему не работает) вычеркнула проблему : DLL 'libpython' не называется как ожидается py2app. Я смог исправить это, отредактировав созданный 'Info.plist'. – alexis