python.el
에서 python-buffer
변수가 nil
으로 설정된 경우 새 버퍼에서 새로운 하위 프로세스가 시작됩니다. 따라서 python-send-buffer
함수를 호출 할 때마다 해당 변수를 nil
으로 다시 설정하여 모든 후속 python-send-buffer
명령에 대해 새로운 Python 프로세스를 강제 실행하도록 할 수 있습니다. 난 당신의 게시물 python-mode.el
에 도움을 요청하는 것을 알고
(defadvice
python-send-buffer
(after python-send-buffer-new-proc activate)
(setq python-buffer nil))
(ad-activate python-send-buffer)
하지만 python-mode.el
이를 사용하지 않는 경우 내가 놀랄 거라고 나는, 어쨌든 이것을 언급하는 것이 도움이 될 거라고 생각 : 다음과 같은 뭔가 작업을해야합니다 유사한 메커니즘. 시간이 있다면, 나는 그것을 조사하려고 노력할 것입니다.
편집 : python-mode.el
패키지는 py-shell
명령을 사용하여 새로운 하위 파이썬 프로세스를 시작합니다. 사용자가 ad hoc 기능을 제공하는 a mailing list posting을 발견했습니다.
기본적으로 python-mode
의 기본 동작을 변경하려고하면이 문제에 대한 최선의 방법이 아니라는 점을 고려해야합니다. 귀하의 코드가 무엇인지 모르겠으며 특히 Twisted에 익숙하지 않지만 동일한 세션 내에서 코드를 두 번째 평가할 때 중대한 오류가 발생하는 것이보다 근본적인 설계 문제의 징후가 될 수 있습니다. . 파이썬 모듈이 한 번만로드되고 연속적인 import
문이 아무런 영향을 미치지 않으면 (예 : reload
또는 execfile()
이 필요함) 동일한 모듈의 복수 imports
이 문제가 될 수 있음을 알 수 없습니다. 제가 여기서 완전히 벗어난다면, 사과하겠습니다 만,이 가능성에 대해 언급 할 가치가 있다고 느꼈습니다.
감사에 대한 새로운 예약 프로세스를 여는. Twisted 문제 : 나는 두 번째 평가할 때 문제를 일으키는 Twisted 매뉴얼에 따라'twisted.internet import gtk3reactor gtk3reactor.install()' 을 수행한다. 이전에 모듈을 가져 왔는지 여부를 확인하는 표준 방법이 있습니까? – gnirx
@gnirx 일반적으로 두 번째 모듈 가져 오기는 아무런 영향을 미치지 않으며, 특히 오류를 생성하는 효과가있는 경우 코드가 어떤 방식 으로든 재구성되어야한다는 표시 일 수 있습니다. 즉, 귀하의 사건은 예외 일 수 있습니다 - 나는 어떤면에서 확실하기 위해 Twisted의 세부 사항에 대해 충분히 알지 못합니다. 모듈을 가져 왔는지 확인하고 싶다면'import sys'를 실행하고'sys.modules'에 모듈이 있는지 확인하십시오. 그것은 일반적으로 kludgy로 간주되며 가능하면 피하는 것이 좋습니다. –