2017-12-09 1 views
0

Spyder 3.2.4 (Python 3.6)을 사용하고 있습니다. Spyder는 가져온 파이썬 파일의 변경 사항을 감지하지 못합니다. 예를 들면 :Spyder가 가져온 파이썬 파일의 변경 사항을 감지하지 못합니다.

test2.py :

def func(): 
    return 5 

test1.py :

import test2 

a = test2.func() 
print(a) 

내가 그 클래스를 작성하고, (같은 작업 디렉토리)를 저장, test1.py 출력은 5입니다. 나는 아직도 5을 얻을, 그것은 저장

def func(): 
    return 10 

을하고 python1.py을 실행 내가 test2.py의 기능을 변경할 때

하지만, 좋아합니다. 저장하고 IDE를 끝내고 돌아 오면 변경된 코드 (10)가 표시됩니다.

이 동작은 Spyder (몇 개월 전부터)를 사용하기 시작한 이후로 계속되고 있으며, 매우 성가시다. 도움을 주시면 감사하겠습니다.

+0

스파이더와 관련이 있는지 확실하지 않습니다. 'importlib.reload'를 시도해 볼 수 있습니다. –

+0

파이썬 플러그인에서 Intellij IDE를 사용할 때 발생하지 않으므로 Spyder와 관련이 있다고 확신합니다. – sheldonzy

+0

내가 말한 것은 이것이 파이썬 특징이라는 것이다. 모듈을 가져 오면 백그라운드에서 변경 한 다음 다시 가져 오기하십시오. 파이썬은 변경 사항을 선택하지 않습니다. 인터프리터를 다시 시작하거나'importlib.reload'를 사용할 수 있습니다. –

답변

1

발생하는 현상은 Python feature입니다. 모듈은 처음 가져오고 캐시에 보관할 때 초기화됩니다. 이후의 각 가져 오기는 캐시를 사용하므로 모듈 코드가 다시 실행되지 않습니다.

대다수의 경우 경제성이 뛰어나므로 개발시 다소 짜증이납니다. importlib.reload을 사용하여 파이썬이 강제로 모듈을 다시로드하도록 할 수 있습니다.

1

(여기스파이더 메인테이너) 이것은 know issue이며, 그것은/2017 년 12 월 출시 될, 우리 3.2.5 버전에서 수정 된 것입니다.

관련 문제