2016-08-20 2 views
1

나는 C++ (Qt)에서 IPython의 프론트 엔드를 작업 중이다.IPython 커널을 시작하고 ZMQ 소켓을 사용하여 연결하는 방법은 무엇입니까?

필자는 파이썬을 내 응용 프로그램에 임베드하여 플롯을 검색하고이를 내 GUI에 표시했습니다. 이제 IPython 커널을 시작하고 ZMQ 소켓을 통해 연결하려고합니다.

나는 IPython 커널과 통신 프로토콜에 대해 description을 찾았습니다. 그러나 연결할 포트가 인 경우이 아닙니다. 따라서 의사 소통 프로토콜을 사용하는 것이 멋지고 멋지지만, 사용할 포트를 모르면 전혀 쓸모가 없습니다.

설명서에 '커널 사양'이 나와 있으며 jupyter kernelspec list 명령을 사용하라고 알려줍니다. 이것은 실제로 두 개의 파일 만 포함하는 하나의 디렉토리를 보여줍니다. logo-32x32.png 및 logo-64x64.png ...

내 IPython 커널과 통신하려면 어떻게 연결해야합니까?

내 C에서 다음 파이썬 코드를 실행 ++ Qt는 응용 프로그램을하여 내 IPython 커널을 시작합니다

import IPython 
IPython.start_kernel(argv=[]) 
+0

업데이트 된 버전의 ['ipy_repl.py'] (https : // gist (Sublime Text) (https://sublimetext.com) 프로그래밍 편집기의 [SublimeREPL] (https://packagecontrol.io/packages/SublimeREPL) 플러그인에서 .github.com/MattDMo/6cb1dfbe8a124e1ca5af를 다운로드하십시오. Sublime 관련 API는 없습니다. 기본적으로 IPython은 4.1.1까지, jupyter_console은 4.1.0까지 작동합니다 (IPython 4 나 다른 버전 5에서는 작동하지 않습니다). IPython/Jupyter 커널 (자동 완성 기능 활용 포함). – MattDMo

+0

'start_kernel'은 현재 프로세스에서 커널을 시작합니다. 원하는대로 들리는 것은 응용 프로그램 프로세스에서 연결하는 별도의 프로세스에있는 커널입니다. 이를 위해서는 [jupyter_client] (http://jupyter-client.readthedocs.io/en/latest/api/manager.html) 모듈을 사용하십시오. Spyder와 같은 응용 프로그램을보고 자신이하는 일을 볼 수 있습니다. –

답변

1

그것은 토마스 K 옳다고 밝혀졌습니다. 다른 프로세스에 IPython/Jupyter 커널을 시작하는 올바른 접근 방식은 다음과 같습니다 (예를 들어 python3에) 내가 처음에 이것을 시도 할 때, 내가 권한 오류가 발생했습니다

import jupyter_client 
kernel_manager, kernel_client = jupyter_client.start_new_kernel(kernel_name='python3') 

.

python3 -m ipykernel install --user 

을 사용하는 것이 가능해야한다 당신은

print(kernel_manager.get_connection_info()) 

하여 포트를 얻을 수 있습니다 :이 작업은 python3 커널 사양을 설치하여 고정 (분명히 Jupyter는 ... 자동으로 수행되지 않음) 이 포트들은 zero-mq를 통해 커널에 연결한다. 그러나 kernel_client은 커널과 통신 할 수있는 몇 가지 방법을 제공하므로 접근 방법을 사용하는 것이 더 쉽습니다. ...

관련 문제