Проблема открытия Py файлов в Spyder с помощью пользовательского скрипта Automator - PullRequest
1 голос
/ 31 октября 2019

Итак, я установил Miniconda с помощью Homebrew, а затем установил Spyder с помощью Conda. Затем я хотел сделать процесс более «дружественным» для Mac, создав приложение, которое открывает Spyder, поэтому я использовал решение от topoman, которое ниже принятого ответа по этой ссылке:

Способы вызова Python иSpyder на OSX

Все работает более или менее хорошо, за исключением того, что я столкнулся с двумя проблемами (вторая не является проблемой, а скорее связана с эстетикой):

  1. Я загрузил py-файлы из этого GitHub (https://github.com/realpython/python-scripts) просто для проверки того, что он откроет py-файлы. Он работает для них, и я также могу установить Spyder в качестве приложения по умолчанию с помощью решения "SpyderOpener"предоставлено topoman по приведенной выше ссылке.

Проблема в том, что когда я создаю новый файл в spyder и сохраняю его, а затем пытаюсь щелкнуть и открыть его, он не будет. Я не уверенв чем разница и почему «SpyderOpener» не работает с этим py-файлом, созданным Spyder, но отлично работает с теми, что я скачал.

Мне было любопытно, можно ли изменить значок дисплея для файлов py, которые по умолчанию имеют значение «SpyderOpener». Я изменил значок для приложения SpyderOpener, но он не работает. Иконки для файлов - это просто пустой лист принтера.

ОБНОВЛЕНИЕ:

Мне кажется, я нашел проблему. Это зависит от того, где находится файл. Когда я положил его на рабочий стол, нет проблем. Когда я положил его в других местах, никаких проблем. Основываясь на экспериментах, кажется, что открыватель не работает, когда файл находится в папке, в имени которой есть пробел (например, имя папки). В ту минуту, когда я меняю имя_папки или имя_фолдера, оно работает нормально

Следовательно, кто-то может объяснить, почему сценарий открывания ломается, когда в пути к файлу есть место? Можно ли отредактировать сценарий, чтобы справиться с этим?

Это сводится к следующим потокам стека (т.е. мне нужно применить двойные кавычки где-нибудь в скрипте):

Скрипт оболочки и пробелы в пути

https://askubuntu.com/questions/1081512/how-to-pass-a-pathname-with-a-space-in-it-to-cd-inside-of-a-script

В этой ветке также предлагается, чтобы скрипт не использовал аргумент $ @ без кавычек, потому что он сломается, как только у вас появятся «пробелы или символы подстановки»:

https://unix.stackexchange.com/questions/41571/what-is-the-difference-between-and

Поэтому, глядя на сценарий и предыдущие шаги, у вас есть:

#!/bin/bash
/usr/local/bin/spyder $@

Тогда сценарий открывания имеет:

for f in "$@"
do
    open /Applications/spyder.app --args $f
done
if [ -z "$f" ]; then
    open /Applications/spyder.app --args ~
fi

Что касается остальной части сценария,Я предполагаю, что $ f не вызовет проблем? В любом случае, похоже, проблема в начальной настройке?

Исходя из этого, он должен обрабатываться с помощью приведенной выше строки:

Обрабатывать пробелы в аргументах скрипта bash

Так что это ломаетсяиз-за аргов?

...