2015-01-22 1 views
0

Из редактора Canopy, как запустить скрипт python в текущем интерактивном пространстве имен?Запустить скрипт в интерактивном пространстве имен изнутри Canopy

В частности, у меня есть большой объект модели, который занимает много времени, чтобы загрузить. Я хотел бы создать экземпляр модели в интерактивной оболочке и затем запустить сценарии, которые работают с существующей моделью. Если я выберу текст в своем сценарии и нажмите кнопку «Запустить выделенный текст», все будет хорошо. В качестве альтернативы, если я нахожу «run -i script.py», как предлагается в этом related question, он также отлично работает. Однако, если я нажму кнопку «Запустить текущий файл», скрипт появится в чистом пространстве имен и не сможет найти ни одну из переменных, которые уже существуют в интерактивной оболочке.

Это конкретный код, который я пытаюсь использовать для загрузки модели только при первом проходе через скрипт.

# Only instantiating the model object if it does not already exist 
if 'model' not in locals(): 
    model = TreeModel(filename) 

ответ

1

Нажмите кнопку «Выполнить текущий файл», а затем, когда он не может работать, как требуется, нажмите стрелку вверх, чтобы вспомнить команду запуска, вставьте -i и нажмите Enter, чтобы повторно запустить в интерактивном режиме IPython в.

Теоретически, Canopy может быть предоставлен в качестве еще одного варианта Run, но мы хотим избежать загромождения пользовательского интерфейса с использованием редко используемых опций.

+0

Я заметил, что в диалоговом окне «Запуск конфигураций» есть поле «Аргументы», но оно похоже на аргументы, которые передаются самому скрипту. Было ли это логичным местом для добавления конфигурации для самой команды запуска? – neal

+0

Он не может быть разумно реализован в этой области, должен быть в другом подобном поле. –

+0

Извините за неоднозначное «это». Либо поле дополнительных аргументов (или просто флажок, если это одна из немногих общих настроек) в диалоговом окне «Запуск конфигурации» - это то, что я представлял. Спасибо, что позволили мне знать, чтобы прекратить поиск интегрированного способа сделать это и обеспечить обходное решение. – neal

Смежные вопросы