2015-01-22 4 views
0

Canopy 편집기에서 현재 대화 형 네임 스페이스 내에서 Python 스크립트를 어떻게 실행합니까?Canopy 내에서 대화 형 네임 스페이스의 스크립트 실행

특히,로드하는 데 오랜 시간이 걸리는 대형 모델 객체가 있습니다. 대화 형 셸에서 모델을 인스턴스화하고 기존 모델에서 작동하는 스크립트를 실행할 수있게하려고합니다. 내 스크립트에서 텍스트를 선택하고 "선택한 텍스트 실행"버튼을 클릭하면 모든 것이 올바르게 작동합니다. 또는 related question에 제안 된대로 "run -i script.py"를 입력해도 올바르게 작동합니다. 그러나 "현재 파일 실행"단추를 클릭하면 스크립트가 깨끗한 네임 스페이스에서 실행되는 것으로 나타나며 대화 형 셸에 이미있는 변수를 찾을 수 없습니다.

이 코드는 스크립트를 처음 통과 할 때 모델을로드하는 데 사용하려고하는 특정 코드입니다.

# 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 Variant로 제공 될 수 있지만 드물게 사용되는 옵션으로 UI가 어지럽히 지 않도록하고 싶습니다.

+0

"실행 구성"대화 상자에 "인수"필드가 있지만 스크립트 자체에 전달되는 인수가있는 것으로 나타났습니다. 이것이 실행 명령 자체에 대한 구성 가능성을 추가하는 논리적 인 장소일까요? – neal

+0

해당 필드에서 합리적으로 구현 될 수 없으며 다른 유사한 필드에 있어야합니다. –

+0

모호한 "this"죄송합니다. "Run Configurations"대화 상자의 추가 인수 필드 (또는 단순히 몇 가지 일반적인 조정 사항 중 하나 인 경우 확인란) 중 하나는 상상 한 것입니다. 이 작업을 수행하고 해결 방법을 제공하는 통합 된 방법을 찾는 것을 중단하라고 알려 주셔서 감사합니다. – neal