Способы вызова 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 без необходимости проходить через приложение запуска (скажем, введя вещи в Spotlight и Quicksilver)
- запустите код Python из Finder, предположительно, дважды щелкнув по my .py файл или выбрав и нажав Cmd-O
- запустить код на Python введя имя скрипта Python в Quicksilver (как если бы это была обычная программа)
вот что я пробовал:
- (ничего, никакой идеи здесь)
- Я связался .py файлы с /Users/kuzzooroo/anaconda / python.app / Contents / MacOS / python и сделал их исполняемыми (chmod u+x). Когда я пытаюсь запустить приложение не запускается и я не получаю сообщение об ошибке (не знаю, где искать)
- сделал файлы исполняемыми и попытался запустить их от прожектора. Тот же результат, что и № 2.
вот что я can do:
- запустите мой код из окна терминала, если у меня есть право shebang сверху и сделали исполняемый файл
- создание приложения с помощью py2app. К сожалению, этот метод имеет следующие недостатки:
- Я часто изменяю свои скрипты и предпочел бы не запускать py2app каждый раз, когда я это делаю
- даже для тривиальной скрипт результирующее приложение 7 МБ
- чтобы запустить приложение в некоторых контекстах, мне нужно покопаться в пакете, чтобы найти фактический "исполняемый файл Unix" и запустить его вместо
Как только я это сделаю, Мне интересно сделать следующее:
A. управление тем, какие скрипты создают окно консоли при их запуске, а какие нет
B. управление тем, исчезает ли результирующее окно консоли после завершения или ожидания сценария вокруг пользователя (меня), чтобы закрыть его
Однако я подозреваю, что может быть легко понять, как это сделать (или возможно ли это), как только я выясню, как я собираюсь вызывать свои сценарии в первую очередь.
5 ответов
чтобы сделать 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
в разделе терминал - > настройки - > профили - > "профиль по умолчанию" - > оболочка - > при выходе оболочки: выберите"Закрыть, если оболочка вышла чисто"
дополнительно:
загрузите значок spyder из здесь и откройте его в режиме предварительного просмотра. Скопируйте его содержимое, нажав cmd+C.
в Finder найдите
/Applications/spyder
и откройте панель "получить информацию", нажав cmd+I. Выберите значок в левом верхнем углу с помощью мыши и нажмите cmd+V.
принятый ответ имеет два недостатка:при запуске 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 $@" >> spyder.app/Contents/MacOS/spyder chmod +x spyder.app/Contents/MacOS/spyder
-
создайте текстовый файл Info.plist в папке содержимого (т. е. у spyder.приложение/содержание/информация.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 принято отвечать.
вуаля, spyder стал вдруг гораздо более Mac-дружественным!
редактировать:
можно дополнительно улучшить mac-дружелюбие spyder by:
предотвращение появления общего значка ракеты python помимо значка spyder
Для этого снимите флажок в spyder опции Tools - > Preferences - > IPython console - > Graphics - > Activate (matplotlib)-
сделать spyder редактором по умолчанию для .py файлы.
Этот более хитрый. Сначала убедитесь, что содержимое spyder.app / содержание / MacOS / spyder читает#!/bin/bash /usr/local/bin/spyder $@
создайте затем сценарий automator, содержащий одно действие "выполнить сценарий оболочки". Вставьте в него следующий скрипт (bash):
for f in "$@"
do
open /Applications/spyder.app --args $f
done
if [ -z "$f" ]; then
open /Applications/spyder.app --args ~
fi
выберите " в качестве аргумента "для входных данных, как показано на скриншоте ниже ("--args ~ " отсутствует на скриншоте, но это необходимо, чтобы избежать ошибки при запуске spyder без какого-либо файла).
Сохраните этот скрипт как приложение под названием "SpyderOpener" для пример.
сделайте SpyderOpener приложением по умолчанию для открытия .py-файлы (с помощью диалогового окна Finder "Get Info" на a .py file)
перейдите к anaconda / bin, найдите spyder (или IPython и т. д.), и перетащите его на док - станцию, но поместите его в раздел "Документы" в конце. Тогда у вас будет легкий доступ к нему, и когда вы нажмете на него Mac OS X запустит оболочку, которая запускает его, и он появится в разделе приложения, так что вы можете принести запущенное приложение вперед, нажав на него.
вы можете использовать Automator для создания приложения, которое будет запускать скрипт в Unix. Откройте Automator, когда он запрашивает тип документа put "Application"
поиск и нажмите "запустить сценарий оболочки". Вы можете оставить /bin / bash как есть и ввести в поле местоположение spyder (как указано, набрав какой spyder в терминале). Затем сохраните файл, и вы сделали. Это также избавляет от проблемы, которую я имел, когда терминал работает в фоновом режиме и дает вам приложение, которое вы можете перетащить док. Вы также можете изменить логотип, как предложено выше.
(Я сделал это с Mac OS 10.10 и Anaconda 2.3.0)
вы можете открыть spyder, указав Quicksilver на ~/anaconda/bin/spyder
(вы можете добавить его в свой каталог, чтобы он всегда его находил).