Способы вызова python и Spyder в OSX
Недавно я купил MacBook и установил Python на него через Anaconda. Здесь информация о версии:
Python 2.7.6 |Anaconda 1.8.0 (x86_64)| (default, Nov 11 2013, 10:49:09)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Я хотел бы иметь возможность выполнить все следующие действия:
- Запустите Spyder без необходимости запуска приложения Launcher (например, введя вещи в Spotlight и Quicksilver).
- Запустите код Python из Finder, предположительно, дважды щелкнув файл .py или выбрав и нажав Cmd-O
- Запустите код Python, введя имя Python script в Quicksilver (как если бы это была обычная программа)
Вот что я пробовал:
- (ничего, без идей здесь)
- Я связал файлы .py с /Users/kuzzooroo/anaconda/python.app/Contents/MacOS/python и сделал их исполняемыми (chmod u + x). Когда я пытаюсь запустить приложение, никогда не запускается, и я не получаю сообщение об ошибке (не знаю, где искать)
- Сделал исполняемые файлы и попытался запустить их из Spotlight. Тот же результат, что и # 2.
Вот что я могу сделать:
- Запустите мой код из окна терминала, если у меня есть правильный shebang сверху и сделали исполняемый файл
- Создайте приложение, используя py2app. К сожалению, этот метод имеет следующие недостатки:
- Я часто изменяю свои сценарии и предпочитаю не запускать py2app каждый раз, когда я делаю
- Даже для тривиального script полученное приложение составляет 7 МБ
- Чтобы запустить приложение в некоторых контекстах, я должен копаться в комплекте, чтобы найти фактический "исполняемый файл Unix" и запустить его вместо
Как только я буду работать, я заинтересован в следующем:
A. Управление скриптами, создающими окно консоли при их запуске, и которые не выполняются
B. Контроль того, исчезает ли окно консоли, когда script завершает или ждет пользователя (я), чтобы закрыть его
Тем не менее, я подозреваю, что может быть легко понять, как это сделать (или, возможно ли это), как только я выясню, как я буду использовать мои сценарии в первую очередь.
Ответы
Ответ 1
Чтобы сделать spyder вызываемым из Spotlight или Finder:
-
Найдите, где исполняемый файл spyder запущен в терминале:
which spyder
Это должно привести к ~/anaconda/bin/spyder
, если вы установили spyder через Anaconda, /opt/local/bin/spyder
, если вы использовали MacPorts или что-то подобное.
-
Создайте файл spyder
в каталоге Applications
и сделайте его исполняемым. Затем залейте его выводом предыдущей команды, а затем &; exit
:
touch /Applications/spyder
chmod +x /Applications/spyder
echo -e '#!/bin/bash'"\n~/anaconda/bin/spyder &\nexit" >> /Applications/spyder
-
В разделе Terminal → Preferences → Profiles → "default profile" → Shell → Когда оболочка завершается: выберите "Закрыть, если оболочка вышла чисто"
Дополнительно:
-
Скачайте значок spyder из здесь и откройте его в Preview. Скопируйте его содержимое, нажав cmd + C.
-
В Finder найдите /Applications/spyder
и откройте панель "Получить информацию", нажав cmd + I. Выберите значок в верхнем левом углу с помощью мыши и нажмите cmd + V.
Ответ 2
Принятый ответ имеет два недостатка: при запуске spyder появляется окно консоли, а на доке не сохраняется значок spyder. Эти drawbakcs можно избежать, создав надлежащий пакет приложений для Mac для spyder, что на удивление легко сделать.
Чтобы преобразовать /usr/local/bin/spyder3
(результат which spyder3
на моем компьютере) в традиционное приложение Mac:
-
Создайте пакет приложений для Mac (в основном, структуру папок, содержащую исполняемый файл):
cd /Applications
mkdir -p spyder.app/Contents/MacOS
echo -e '#!/bin/bash'"\n /usr/local/bin/spyder3 [email protected]" >> spyder.app/Contents/MacOS/spyder
chmod +x spyder.app/Contents/MacOS/spyder
-
Создайте текстовый файл с именем Info.plist в папке "Содержание" (т.е. в файле spyder.app/Contents/Info.plist) со следующим содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>CFBundleExecutable</key>
<string>spyder</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>3.1.4</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>3.1.4</string>
</dict>
</plist>
-
(необязательно) Создайте значок приложения, как на шагах 4 и 5 принятого ответа.
Voilà, spyder стал внезапно намного более дружественным к Mac!
РЕДАКТИРОВАТЬ:
Можно дополнительно улучшить дружелюбие spyder:
-
Предотвращение появления пиктограммы ракета-носителя python, помимо значка spyder
Для этого снимите флажок в программе "Инструменты" → "Настройки" → "Консоль iPython" → "Графика" → "Активировать" (matplotlib)
-
Создание spyder редактора по умолчанию для .py файлов.
Это сложнее. Сначала убедитесь, что содержимое spyder.app/Contents/MacOS/spyder читает
#!/bin/bash
/usr/local/bin/spyder [email protected]
Создайте затем автомат script, содержащий одно действие "Выполнить оболочку script". Вставьте в него следующее (bash) script:
for f in "[email protected]"
do
open /Applications/spyder.app --args $f
done
if [ -z "$f" ]; then
open /Applications/spyder.app --args ~
fi
Выберите "Как аргумент" для входных данных, как показано на скриншоте ниже ( "-args ~" отсутствует на скриншоте, но это необходимо, чтобы избежать ошибки при запуске spyder без какого-либо файла).
Сохраните этот script как приложение под названием "SpyderOpener", например.
Сделайте SpyderOpener приложение по умолчанию для открытия .py файлов (с помощью диалогового окна Finder "Получить информацию" в файле .py)
Ответ 3
Перейдите в anaconda/bin, найдите spyder (или IPython и т.д.) и перетащите его в док-станцию, но поместите его в раздел документов в конце. Тогда у вас будет легкий доступ к нему, и когда вы нажмете на него, Mac OS X запустит оболочку, которая ее запустит, и она появится в разделе "Приложения", чтобы вы могли запустить запущенное приложение, нажав на него.
Ответ 4
Вы можете использовать Automator для создания приложения, которое будет запускать Unix Script. Откройте Automator, когда он запрашивает тип документа, поставьте "Приложение"
Найдите и нажмите "Запустить оболочку Script". Вы можете оставить /bin/ bash таким, какой он есть, и ввести в поле местоположение spyder (как указано, набрав шпионер в терминале). Затем вы сохраняете файл, и все готово. Это также избавляет от проблемы, возникшей у меня, когда терминал работает в фоновом режиме и дает вам приложение, которое вы можете перетащить на док-станцию. Вы также можете изменить логотип, как было предложено выше.
(я сделал это с Mac OS 10.10 и Anaconda 2.3.0)
Ответ 5
Вы можете открыть spyder, указав Quicksilver на ~/anaconda/bin/spyder
(вы можете добавить его в свой каталог, чтобы он всегда его обнаруживал).
Ответ 6
Очень простой метод, не требующий использования Terminal, по сути, заключается в создании пакета spyder.app в Applications и копировании exec файла spyder из Anaconda в эту папку. Нажав на пакет, вы запустите spyder как приложение, и вы можете щелкнуть правой кнопкой мыши значок док-станции, чтобы сохранить его в док-станции.
Ниже приведены пошаговые инструкции.
Сначала мы создаем папку spyder.app в приложениях:
-
Откройте папку "Приложения" в Finder.
-
Щелкните правой кнопкой мыши и создайте "Новая папка".
- Назовите папку "spyder.app" и разрешите расширение .app.
Затем мы копируем exec spyder file:
-
В новом окне Finder откройте свою домашнюю папку (в качестве значка она должна иметь простое изображение дома). Для быстрого доступа нажмите клавиши Shift + Command + H, когда Finder открыт.
-
Откройте папку anaconda3, а затем откройте папку с именем "bin".
- Найдите исполняемый файл с именем "spyder" и щелкните правой кнопкой мыши, чтобы скопировать файл.
Примечание: если anaconda3 не установлен в вашем домашнем каталоге, просто найдите "anaconda3" с точными совпадениями имен файлов в Finder и откройте файл.
Вставьте скопированный exec файл в пакет spyder.app:
-
В окне Finder откройте "Приложения", щелкните правой кнопкой мыши созданный выше spyder.app и выберите "Показать содержимое пакета".
-
Щелкните правой кнопкой мыши в окне и вставьте исполняемый файл.
Теперь, когда вы вернетесь в папку "Приложения", дважды щелкните пакет spyder.app, и программа spyder запустится. Щелкните правой кнопкой мыши значок в доке и выберите "Сохранить в доке", чтобы приложение оставалось в доке, когда оно не запущено. Вы также можете создать значок для приложения, как указано в 4 и 5 оригинального ответа.
Ответ 7
Я считаю, что самый простой способ доступа к spyder в macOS - через терминал! вы удерживаете в док-станции терминал, и когда вы хотите открыть spyder, вы открываете терминал и вводите spyder в терминал, а затем возвращаете ключ! Мне нравится этот метод, потому что когда я открываю терминал и нажимаю стрелку вверх один или несколько раз, я получаю доступ к spyder и запускаю его с нажатием return! Я знаю, что это очень очевидный и простой метод, но я хотел напомнить об этом!
Ответ 8
Супер быстрый способ без какого-либо навыка - найти exe (which sypder
достигнет этого) во что-то вроде //anaconda3/bin/spyder
. Дублируйте этот файл и поместите его на рабочий стол. Когда вам это нужно, просто дважды щелкните.
Обратите внимание, что причина, по которой я предлагаю это в качестве альтернативы, заключается в том, что на моей рабочей машине у меня нет доступа, чтобы что-либо изменить в каталоге приложений.
Изменить: Еще более быстрый способ будет сделать:
command
+ spacebar
затем введите Spyder.