repl을 시작하는 데 오랜 시간이 걸린다고 가정 python
하면 별칭을 만들고 python-current "command to run"
.
답변1
파이썬 배포판에는 이런 종류의 열기를 수행하는 것이 없으며 "배터리 포함"도 없습니다.
Editor와 같은 프로그램은 이런 종류의 일을 처리할 수 있습니다. 왜냐하면 다른 파일을 열 때 무엇을 해야 할지 매우 명확하기 때문입니다. 동일한 실행 파일에 의해 처리되는 새 파일에서 창/탭을 열면 됩니다.
이와 같은 것을 직접 구현하는 것은 어렵지 않지만 첫 번째 명령이 아직 완료되지 않았고 두 번째 명령이 예약되면 어떤 일이 발생하는지 고려해야 합니다.
- 첫 번째 명령을 중단
- 두 번째 명령을 대기열에 넣습니다.
- 병렬로 실행(명령을 기다리는 스레드가 여러 개 있지 않으면 추가 시작 시간이 필요함)
나는 디렉토리, http 요청(Twisted 기반 시스템에서) 및 Zeromq의 파일 검색을 기반으로 모듈을 로드하고 실행하기 위해 Python을 실행하라고 지시했습니다. IMHO 무엇이 적절한지는 시스템에 필요한 다른 것이 무엇인지에 따라 다르며, 저는 항상 효율적이고 오버헤드가 최소화된 것을 선택합니다. 적절하게 인터페이스해야 합니다 python-current
.
종종 이는 일부 모듈을 다시 로드하는 것과 결합됩니다(새 명령을 처리하기 위해). 이를 위해 reload()
내장된 기능을 사용할 수 있습니다:
import mycommand
# test for a command that requires reloading
reload(mycommand)
참고: 특히 UI 코드로 작업할 때 이 다시 로드가 유용하다고 생각합니다. Python은 Perl과 동등하게 실행 파일을 로드합니다(몇 년 전 내 시스템에서는 0.002초
time python -v
). 기본 모듈을 로드하는 데 약 10배 더 오래 걸립니다( time python -c "exit();", 0.025s). But when using UI based programs the whole startup easily grows to several seconds and more. And in that case implementing dynamic command reading and having a
python-current`가 의미가 있습니다.