Ipython: λ…ΈνŠΈλΆμ˜ "λͺ¨λ‘ μ‹€ν–‰"이 %matplotlib qtμ—μ„œ 멈μΆ₯λ‹ˆλ‹€.

에 λ§Œλ“  2014λ…„ 04μ›” 16일  Β·  39μ½”λ©˜νŠΈ  Β·  좜처: ipython/ipython

이것은 μ΄μƒν•œ λ²„κ·Έμ΄μ§€λ§Œ μ‹œμŠ€ν…œ μ „μ²΄μ—μ„œ μž¬ν˜„ κ°€λŠ₯ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€.

첫 번째 셀이 μžˆλŠ” λ…ΈνŠΈλΆμ΄ μžˆλŠ” 경우

%matplotlib qt

그리고 "λͺ¨λ‘ μ‹€ν–‰"을 μ„ νƒν•˜λ©΄ IPython이 첫 번째 셀을 μ‹€ν–‰ν•˜μ§€λ§Œ μ€‘λ‹¨λ©λ‹ˆλ‹€. 였λ₯Έμͺ½ μƒλ‹¨μ˜ μƒνƒœ μ•„μ΄μ½˜μ€ μ—΄λ¦° μ›μ΄μ§€λ§Œ λ‹€λ₯Έ 셀은 μ‹€ν–‰ν•  수 μ—†μŠ΅λ‹ˆλ‹€. %matplotlib ν–‰ 뒀에 κ°„λ‹¨ν•œ print 문을 μΆ”κ°€ν•˜λ©΄ μ‹€ν–‰λ˜μ–΄ 좜λ ₯ μ˜μ—­μ— μΈμ‡„λ©λ‹ˆλ‹€.

셀을 "μˆ˜λ™μœΌλ‘œ" μ‹€ν–‰ν•˜λ©΄ 이런 일이 λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 그런 일이 λ°œμƒν•˜λ©΄ λ¬Έμ œμ—†μ΄ "λͺ¨λ‘ μ‹€ν–‰"을 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

이것은 OSX 10.6κ³Ό 10.8의 IPyhton 2.0μ—μ„œ λ°œμƒν•©λ‹ˆλ‹€. μ•„λ‚˜μ½˜λ‹€λ₯Ό 톡해 Python 2.7을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

이것을 더 μΆ”μ ν•˜κΈ° μœ„ν•΄ 무엇이든 μ‹œλ„ν•˜κ²Œ λ˜μ–΄ κΈ°μ©λ‹ˆλ‹€...

bug matplotlib

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ¬Έμ œλŠ” %gui qt λ§ˆλ²•μ—μ„œλ„ λ°œμƒν•˜μ§€λ§Œ 일뢀 μƒν™©μ—μ„œλŠ” matplotlibλ₯Ό κ°€μ Έμ˜€λ €κ³  μ‹œλ„ν•˜λ―€λ‘œ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  39 λŒ“κΈ€

Windows의 minicondaμ—μ„œ Python 2.7을 μ„€μΉ˜ν•  λ•Œλ„ λΉ„μŠ·ν•œ 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. 첫 번째 셀이 μžˆλŠ” λ…ΈνŠΈλΆμ΄ μžˆλŠ” 경우:

%pylab

"λͺ¨λ‘ μ‹€ν–‰"은 ν•΄λ‹Ή νŠΉμ • 셀을 자체적으둜 μˆ˜λ™μœΌλ‘œ μ‹€ν–‰ν•œ 후에도 항상 μ€‘λ‹¨λ©λ‹ˆλ‹€. 그런 λ‹€μŒ λ…ΈνŠΈλΆμ΄ 무엇이든 μ‘λ‹΅ν•˜λ„λ‘ ν•˜λ €λ©΄ 컀널->λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ‚΄ ν•΄κ²° 방법은 ν•΄λ‹Ή 셀을 자체적으둜 μˆ˜λ™μœΌλ‘œ μ‹€ν–‰ν•˜κ³  λ‹€μŒ μ…€λ‘œ μ΄λ™ν•œ λ‹€μŒ "μ•„λž˜μ—μ„œ λͺ¨λ‘ μ‹€ν–‰"ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

이 문제λ₯Ό 더 μžμ„Ένžˆ μΆ”μ ν•˜λŠ” 데 도움이 λ˜λŠ” μΆ”κ°€ 정보λ₯Ό μ œκ³΅ν•˜κ²Œ λ˜μ–΄ κΈ°μ©λ‹ˆλ‹€.

λ‚˜λŠ” λ˜ν•œ 이것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€ (그리고 %matplotlib 와 일뢀 κ°€μ Έμ˜€κΈ°κ°€ μžˆλŠ” 첫 번째 셀이 있고(μ‹€ν–‰ν•˜λŠ” 데 μ•½κ°„μ˜ μ‹œκ°„μ΄ μ†Œμš”λ¨) λ‹€μŒ μ…€κ³Ό ν•¨κ»˜ μ‹€ν–‰ν•˜λ €λŠ” 경우 λ‹€μ†Œ μ„±κ°€μ‹  μΌμž…λ‹ˆλ‹€.

이것을 μž¬ν˜„ν•˜λŠ” κ°„λ‹¨ν•œ 방법:

  1. 두 개의 셀이 μžˆλŠ” λ…ΈνŠΈλΆ:

%matplotlib import time time.sleep(10)

print "This will not print"

  1. ν•œ λ²ˆμ— λ‘˜ λ‹€ μ‹€ν–‰(shift-enter 두 번 λˆ„λ₯΄κΈ°)
  2. 첫 번째 셀은 μ‹€ν–‰λ˜μ§€λ§Œ 컀널이 μ€‘λ‹¨λ©λ‹ˆλ‹€(두 번째 셀은 μ‹€ν–‰λ˜μ§€ μ•Šκ³  ν‘œμ‹œκΈ°κ°€ 컀널이 μ€€λΉ„λ˜μ—ˆλ‹€κ³  ν‘œμ‹œλ˜μ§€λ§Œ 아무 것도 μ‹€ν–‰ν•  수 μ—†μŒ).

untitled

λ”°λΌμ„œ λ°˜λ“œμ‹œ "λͺ¨λ‘ μ‹€ν–‰"κ³Ό 관련이 μžˆλŠ” 것은 μ•„λ‹ˆμ§€λ§Œ ν•˜λ‚˜μ˜ 셀에 %matplotlib κ°€ μžˆλŠ” μ—¬λŸ¬ 셀을 μ‹€ν–‰ν•˜λŠ” 것과 관련이 μžˆμŠ΅λ‹ˆλ‹€.

IPython 2.1, Windows 64λΉ„νŠΈ, Firefox 31μ—μ„œ λ§ˆμ§€λ§‰μœΌλ‘œ ν…ŒμŠ€νŠΈν–ˆμŠ΅λ‹ˆλ‹€.

쑰금 더 μ‹€ν—˜ν•œ ν›„ 이 λ¬Έμ œκ°€ 버전 2.0.0μ—μ„œ 처음으둜 λ‚˜νƒ€λ‚˜λŠ” 것을 λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ 버전 1.2.1둜 λ‘€λ°±ν•˜λ©΄

conda install ipython=1.2.1

λ¬Έμ œκ°€ μ‚¬λΌμ§‘λ‹ˆλ‹€.

Windows 32λΉ„νŠΈ, 파이썬 2.7.7, νŒŒμ΄μ–΄ν­μŠ€ 31

λ˜ν•œ 이 버그가 λ°œμƒν–ˆμœΌλ©° Windows 8μ—μ„œ Python 3.4.1, Anaconda 2.1.0(64λΉ„νŠΈ), IPython 2.3.1을 μ‚¬μš© ν•˜μ—¬ μœ„μ˜ 방법을 μ‚¬μš©ν•˜μ—¬ μž¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
κ½€ μ§œμ¦λ‚˜λŠ” λ²„κ·Έμž…λ‹ˆλ‹€. 좔적을 돕기 μœ„ν•΄ λ‚΄κ°€ ν•  수 μžˆλŠ” 일이 μžˆμŠ΅λ‹ˆκΉŒ? 4.0 λ§ˆμΌμŠ€ν†€(λŒ€λž΅)은 μ–Έμ œ μ™„λ£Œλ  κ²ƒμœΌλ‘œ μ˜ˆμƒλ©λ‹ˆκΉŒ?

Linux Mint 17, python 3.4 및 matplotlib 1.4.0μ—μ„œ github(e2778c5f4047d03f5f025bd53d1704a0cf9f0337)의 μ΅œμ‹  ipython 버전을 μ‚¬μš©ν•˜μ—¬ 버그λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

이 녀석듀에 λŒ€ν•œ μ†Œμ‹μ΄ μžˆλ‚˜μš”? ν•„μš”ν•œ 경우 더 λ§Žμ€ ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 λ²„κ·ΈλŠ” 정말 μ§œμ¦λ‚œλ‹€!!!

이것이 λ‚˜μ—κ²Œλ„ λ°œμƒν•œλ‹€λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. CentOS w/ python 2.7 및 matplotlib 1.4.4μ—μ„œ 항상 λ°œμƒν•©λ‹ˆλ‹€.

셀을 μˆ˜λ™μœΌλ‘œ μ‹€ν–‰ν•˜λ©΄ μž‘λ™ν•©λ‹ˆκΉŒ?

μœ„μ˜ λ‚΄ 의견 (https://github.com/ipython/ipython/issues/5629#issuecomment-50603511)을 μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€. μ—¬λŸ¬ 셀을 μˆ˜λ™μœΌλ‘œ μ‹€ν–‰ν•˜λŠ” κ²½μš°μ—λ„ λ‚˜νƒ€λ‚©λ‹ˆλ‹€.

예 - 기본적으둜 타이밍 문제라고 μƒκ°ν•©λ‹ˆλ‹€. Shift+Enterλ₯Ό λˆ„λ₯΄λ©΄ 셀이 μ‹€ν–‰λ˜κ³  μž μ‹œ κΈ°λ‹€λ Έλ‹€κ°€ λ‹€λ₯Έ μž‘μ—…μ„ κ³„μ†ν•˜λ©΄ μž‘λ™ν•©λ‹ˆλ‹€. Shift+Enterλ₯Ό μ—¬λŸ¬ 번 λ°˜λ³΅ν•΄μ„œ λˆ„λ₯΄λ©΄ 멈μΆ₯λ‹ˆλ‹€. μΆ”κ°€ 셀을 싀행해도 μ½”λ“œκ°€ μ‹€μ œλ‘œ μ‹€ν–‰λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(였λ₯Έμͺ½ μƒλ‹¨μ˜ μž‘μ€ 원이 μ—¬μ „νžˆ λΉ„μ–΄ 있음).

^^ μ œκ°€ κ΄€μ°°ν•œ λ‚΄μš©μ΄κΈ°λ„ ν•©λ‹ˆλ‹€.

Ipython Notebook 3.1.0μ—μ„œ ν™•μΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν•΄κ²° 방법:

import time
%matplotlib
time.sleep(1)

λͺ»μƒκ²Όμ§€λ§Œ λͺ¨λ‘ μ‹€ν–‰ μ˜΅μ…˜μ„ ν¬κΈ°ν•˜λŠ” 것은 λ„ˆλ¬΄ μ„±κ°€μ‹  μΌμž…λ‹ˆλ‹€.

λ‚΄ μ»΄ν“¨ν„°μ—μ„œλ„ μž‘λ™ν•˜λ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.

2015λ…„ 6μ›” 12일 κΈˆμš”μΌ μ˜€μ „ 7:02에 quicknir [email protected]μ—μ„œ λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

Ipython Notebook 3.1.0μ—μ„œ ν™•μΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν•΄κ²° 방법:

κ°€μ Έμ˜€κΈ° μ‹œκ°„
%matplotlib
time.sleep(1)

λͺ»μƒκ²Όμ§€λ§Œ λͺ¨λ‘ μ‹€ν–‰ μ˜΅μ…˜μ„ ν¬κΈ°ν•˜λŠ” 것은 λ„ˆλ¬΄ μ„±κ°€μ‹  μΌμž…λ‹ˆλ‹€.

β€”
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/ipython/ipython/issues/5629#issuecomment -111502934.

4.1(λ˜λŠ” 5.0)에 λŒ€ν•œ μ΄μ •ν‘œλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆκΉŒ?
κ΅μˆ˜ν˜• λ…ΈνŠΈλΆμ€ μœ„μ‹œλ¦¬μŠ€νŠΈ μ΄μ •ν‘œμ— μ ν•©ν•˜μ§€ μ•Šμ€ 것보닀 쑰금 더 μ‹¬κ°ν•˜κ²Œ λ“€λ¦½λ‹ˆλ‹€. λ˜ν•œ 이 λ²„κ·ΈλŠ” matplotlibλ₯Ό μ‚¬μš©ν•  λ•Œ μ„±κ°€μ‹  λ¬Έμ œμž…λ‹ˆλ‹€(ν•΄κ²° 방법에도 λΆˆκ΅¬ν•˜κ³ ).

μš°λ¦¬κ°€ 이유λ₯Ό μ•Œμ•„λ‚Ό λ•ŒκΉŒμ§€ ν•΄κ²° λ°©λ²•μœΌλ‘œ matplotlib λ§ˆλ²• μžμ²΄μ— sleep(1) κ°€ μžˆμ–΄μ•Ό ν•©λ‹ˆκΉŒ ??

:+1:

수면 ν•΄κ²° 방법은 거의 νš¨κ³Όκ°€ μ—†μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 그것이 μž‘λ™ν•˜λŠ” 것을 두어 번 λ³΄μ•˜μ§€λ§Œ μ‹œλ„ν•œ λŒ€λΆ€λΆ„μ˜ 경우 λ…ΈνŠΈλΆμ΄ μ—¬μ „νžˆ λ©ˆμ·„μŠ΅λ‹ˆλ‹€.

μΌκ΄€λ˜κ²Œ μž‘λ™ν•˜λŠ” μœ μΌν•œ ν•΄κ²° 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  1. %matplotlibκ°€ ν¬ν•¨λœ 셀을 μˆ˜λ™μœΌλ‘œ μ‹€ν–‰
  2. 컀널 유휴 ν‘œμ‹œλ₯Ό κΈ°λ‹€λ¦½λ‹ˆλ‹€.
  3. λ‹€μŒ μ…€ 선택
  4. "μ•„λž˜ λͺ¨λ‘ μ‹€ν–‰"

FWIW λ‚˜λŠ” 이것이 μ–Όλ§ˆλ‚˜ 잘 μž‘λ™ν•˜λŠ”μ§€μ— λŒ€ν•œ 보닀 합리적인 μΆ”μ •μΉ˜λ₯Ό μ–»κΈ° μœ„ν•΄ 이것을 쑰금 ν…ŒμŠ€νŠΈν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒ μ„Έ 개의 μ…€λ‘œ λ…ΈνŠΈλΆμ„ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

import time
%matplotlib qt
time.sleep(1)
with open("test_log.txt", "a") as fid:
    fid.write("it worked\n")

그런 λ‹€μŒ μ‰˜μ—μ„œ λ‹€μŒμ„ μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

for i in {1..100}; do
    ipython nbconvert --execute test_qt.ipynb  --inplace;
done
wc -l test_log.txt

이 ν…ŒμŠ€νŠΈκ°€ μ˜¬λ°”λ₯Έ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆμ§€λ§Œ μ œλŒ€λ‘œ μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

4.1둜 ν‘œμ‹œλ˜μ–΄ μžˆμœΌλ―€λ‘œ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€.
방금 @mwaskom 의 μž¬ν˜„μ„ μ‹œλ„ν–ˆλŠ”λ° λ™μΌν•œ κ²°κ³Όλ₯Ό μ–»μ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ‹œκ°„ 및 μ ˆμ „ μ½”λ“œλ₯Ό μ œκ±°ν•˜κ³  μ‰˜ 뢀뢄을 λ‹€μ‹œ μ‹€ν–‰ν–ˆλŠ”λ° _μ—­μ‹œ_ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€! λ”°λΌμ„œ 이것은 쒋은 μž¬ν˜„ 절차(λ˜λŠ” λ‚΄λΆ€ ν•΄κ²° 방법)κ°€ μ•„λ‹Œ 것 κ°™μŠ΅λ‹ˆλ‹€. :-/
λ‚˜λŠ” λ˜ν•œ @tanderl κ³Ό 같이 수면 ν•΄κ²° 방법이 μΌκ΄€λ˜κ²Œ μž‘λ™ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것을 λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. 이것은 Ubuntu 64λΉ„νŠΈμ˜ ipython 3.2.1에 μžˆμŠ΅λ‹ˆλ‹€. 내일 Windowsμ—μ„œ 같은 μž‘μ—…μ„ μ‹œλ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μœˆλ„μš° 8.1μ—μ„œ μ•„λ‚˜μ½˜λ‹€λ₯Ό 톡해 μ„€μΉ˜ Ipython 3.2.0을 μ‚¬μš©ν•˜μ—¬, λ‚˜λŠ” λ˜ν•œ 수면 ν•΄κ²° 방법은 μ €λ₯Ό μœ„ν•΄ μΌν•˜κ³ , μ¦‰ν•˜μ§€ μ•ŠλŠ” κ²ƒμœΌλ‘œ 확인 sleep(1) ν•˜κΈ° matplotlib λ§ˆλ²•, μ‹€ν–‰κ³Ό 같은 μ…€ (λ˜λŠ” 큰 κ°’) μƒˆλ‘œ λ‹€μ‹œ μ‹œμž‘ν•œ μ»€λ„μ˜ λͺ¨λ“  ν•­λͺ©μ€ λ‹€μŒ 셀에 λ³„ν‘œμ™€ ν•¨κ»˜ 계속 μ€‘λ‹¨λ©λ‹ˆλ‹€(λ˜λŠ” 아무 μž‘μ—…λ„ μˆ˜ν–‰ν•˜μ§€ μ•ŠμœΌλ©΄ UIκ°€ 계속 μž‘λ™ν•¨). 셀을 ν•˜λ‚˜μ”© μˆ˜λ™μœΌλ‘œ μ‹€ν–‰ν•˜κ³  κ·Έ 사이에 κΈ°λ‹€λ¦¬λŠ” 것은 μ—¬μ „νžˆ β€‹β€‹μž‘λ™ν•©λ‹ˆλ‹€.

@bilderbuchi κ°€ Linux Mintμ—μ„œ μ—…λ°μ΄νŠΈλœ μ•„λ‚˜μ½˜λ‹€ μŠ€νƒμœΌλ‘œ λ§ν•œ 것을 ν™•μΈν•©λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš”,
방금 λΉ„μŠ·ν•œ 문제λ₯Ό κ²ͺμ—ˆμŠ΅λ‹ˆλ‹€. %matplotlib 인라인 λ˜λŠ” λ…ΈνŠΈλΆ 맀직을 μ‚¬μš©ν•˜λŠ” λ…ΈνŠΈλΆμ„ μ‹€ν–‰ν•  λ•Œ "λͺ¨λ“  μ…€ μ‹€ν–‰"이 가끔 λ©ˆμΆ”κ³  λͺ¨λ“  셀을 μˆ˜λ™μœΌλ‘œ μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.
Windows 7, Python 3.5, IPython 5.1.0, λ…ΈνŠΈλΆ 4.1.0 및 matplotlib 1.5.3을 μ‹€ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
ν•΄κ²° λ°©λ²•μœΌλ‘œ λͺ¨λ“  좜λ ₯을 μ •λ¦¬ν•œ λ‹€μŒ μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. λΆˆν–‰νžˆλ„ μž¬ν˜„ κ°€λŠ₯ν•œ λ…ΈνŠΈλΆμ„ μ œκ³΅ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

μΉœμ• ν•˜λŠ”,
ν”Œλ‘œλ¦¬μ•ˆ

이것은 jupyter λ…ΈνŠΈλΆκ³Ό 연ꡬ싀 λͺ¨λ‘μ—μ„œ μ—¬μ „νžˆ λ¬Έμ œμž…λ‹ˆλ‹€.

@thomasaarholt μ‹ λ’°ν•  수 μžˆλŠ” 볡제 μ ˆμ°¨κ°€ μžˆμŠ΅λ‹ˆκΉŒ?

@bilderbuchi λŠ” 이 문제의 원본 κ²Œμ‹œλ¬Όμ„ μ°Έμ‘°ν•˜μ„Έμš”. μ—¬μ „νžˆ λ™μΌν•œ λ¬Έμ œμž…λ‹ˆλ‹€. λ‹€μŒμ€ λ‚΄ 컴퓨터(μ΅œμ‹  jupyter 및 qt4κ°€ ν¬ν•¨λœ OSX)μ—μ„œ λ‹€μ‹œ λ§Œλ“œλŠ” GIFμž…λ‹ˆλ‹€.

bug

@Carreau , κ·Έ μž¬ν˜„μ΄ μž‘μ—…ν•˜κΈ°μ— μΆ©λΆ„ν•©λ‹ˆκΉŒ? λ§€λ‹¬λ €μžˆλŠ” 버그가 "μœ„μ‹œλ¦¬μŠ€νŠΈ"보닀 더 κΈ΄κΈ‰ν•΄μ•Όν•©λ‹ˆκΉŒ?

@bilderbuchi @Carreau , 방금 μœ„μ‹œλ¦¬μŠ€νŠΈ νƒœκ·Έλ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€.
μ €λŠ” 이 버그가 훨씬 더 높은 μš°μ„  μˆœμœ„λ₯Ό κ°€μ Έμ•Ό ν•œλ‹€κ³  μ£Όμž₯ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

λ§Žμ€ μƒˆλ‘œμš΄ jupyter μ‚¬μš©μžλŠ” κΈ°μ‘΄ λ…ΈνŠΈλΆμ„ 톡해 jupyter μ‚¬μš©λ²•μ„ λ°°μ›λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 일뢀 ν”ŒλŸ¬κ·ΈμΈμ—μ„œ μ œκ³΅ν•˜λŠ” 예제 톡합 λ¬Έμ„œλ₯Ό μ‹€ν–‰ν•˜λ €κ³  ν•©λ‹ˆλ‹€. ν˜„μž¬ λ™μž‘μœΌλ‘œ μ‚¬μš©μžκ°€ λͺ¨λ‘ μ‹€ν–‰ λͺ…령을 μ‚¬μš©ν•˜κ±°λ‚˜ λ…ΈνŠΈλΆμ„ λΉ λ₯΄κ²Œ "Shift + Enter"ν•˜λ©΄ λ…ΈνŠΈλΆμ΄ 첫 μˆœκ°„λΆ€ν„° λ©ˆμΆ”λŠ” 것을 λ°œκ²¬ν•  수 있으며 μ΄λŠ” 첫인상이 맀우 쒋지 μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬ν•œ 인상은 μ’…μ’… 코딩을 처음 λ°°μš°λŠ” μ‚¬λžŒμ΄λ‚˜ 과거에 λ‚˜μœ κ²½ν—˜(μˆ˜μ—…/μ‹œν—˜)을 κ²ͺ은 μ‚¬λžŒμ—κ²Œ "코딩이 λ³΅μž‘ν•˜λ‹€"λŠ” 것을 κ°•μ‘°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ €λŠ” 이 버그가 훨씬 더 높은 μš°μ„  μˆœμœ„λ₯Ό κ°€μ Έμ•Ό ν•œλ‹€κ³  μ£Όμž₯ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

더 이상 μš°μ„  μˆœμœ„μ˜ λ¬Έμ œκ°€ μ•„λ‹™λ‹ˆλ‹€. 버그가 μ—΄λ¦° 지 2년이 λ„˜μ—ˆκ³  λ¬Έμ œλŠ” 아무도 μ•Œμ•„λ‚Ό 수 μ—†λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μš°λ¦¬λŠ” 그것을 μ•Œμ•„λ‚΄λ €κ³  λ…Έλ ₯ν–ˆμ§€λ§Œ μ°ΎκΈ° νž˜λ“  μˆ˜μ •μΈ 것 κ°™κ³  μ£Όλ³€μ˜ λͺ¨λ“  ν”„λ ˆμž„μ›Œν¬ 이벀트 루프 및 λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•œ μ „λ¬Έκ°€κ°€ 될 수 μ—†μŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” 무엇인가λ₯Ό ν•˜κ²Œ λ˜μ–΄ κΈ°μ©λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ¬Έμ œκ°€ λ„ˆλ¬΄ 였래 μ§€μ†λ˜μ–΄ 더 높은 μš°μ„  μˆœμœ„μ— νƒœκ·Έλ₯Ό 지정해도 도움이 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ–΄λ–€ κ°œλ°œμžλ„ 무슨 일이 μΌμ–΄λ‚˜κ³  μžˆλŠ”μ§€ λͺ¨λ¦…λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ μš°λ¦¬λŠ” 그것을 고쳀을 κ²ƒμž…λ‹ˆλ‹€.

@Carreau ipython μ½”λ“œμ—μ„œ 컀널 μ„œλ²„μ™€ GUI κ°„μ˜ 톡합이

ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μœΌλ‘œ λΈŒλΌμš°μ €μ—μ„œ λ…ΈνŠΈλΆμ„ μ—΄κ³  λͺ¨λ“  셀을 μ‹€ν–‰ν•˜λŠ” 방법이 μžˆμŠ΅λ‹ˆκΉŒ? κ·Έλ ‡κ²Œ ν•˜λ©΄ μ½”λ“œλ₯Ό git bisectν•˜μ—¬ μ–΄λ–€ λ³€κ²½ 사항이 μ΄λŸ¬ν•œ 문제λ₯Ό μΌμœΌν‚€λŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
터미널과 IPython μ„Έμ…˜ λ‚΄μ—μ„œ nbconvert --execute λ₯Ό 톡해 λ¬Έμ œκ°€ λ˜λŠ” λ…ΈνŠΈλΆμ„ μ‹€ν–‰ν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ μ§€κΈˆκΉŒμ§€ 멈좜 수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

@bilderbuchi λ¨Όμ €, μ»΄ν“¨ν„°μ—μ„œ "μˆ˜λ™μœΌλ‘œ" 버그λ₯Ό μž¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

예. λ‚˜λŠ” λ§ˆλ²•μ˜ λ‹€λ₯Έ λ³€ν˜•μ„ μ‹œλ„ν•˜λŠ” λͺ‡ 가지 ν₯미둜운 행동을 λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€
첫 번째 μ…€ λ‚΄μš©:

%matplotlib notebook -> works
%matplotlib inline -> works
%matplotlib -> prints Using matplotlib backend: Qt5Agg, then hangs
%matplotlib qt -> prints ModuleNotFoundError: No module named 'PyQt4' (I think that's a different unrelated bug)
%matplotlib qt5 -> prints nothing, then hangs

( %matplotlib qt ν•  λ•Œ λ‹€λ₯Έ λ²„κ·ΈλŠ” ContinuumIO/anaconda-issues#1068이라고 μƒκ°ν•©λ‹ˆλ‹€.)
두 번째 μ…€μ—λŠ”

print("This will not print")

μœ„μ—μ„œ "쀑단"이라고 λ§ν•˜λ©΄ 두 번째 μ…€μ—λŠ” 항상 "2" λŒ€μ‹  λ³„ν‘œκ°€ 있고 λ©”μ‹œμ§€κ°€ μΈμ‡„λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.
이 λͺ¨λ“  것은 κΉ¨λ—ν•œ μƒνƒœλ₯Ό 보μž₯ν•˜κΈ° μœ„ν•΄ Kernel - Restart & Run All둜 μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이것은 Windows 10, IPython 5.3.0, Firefox 52.0.2의 Anacondaλ₯Ό 톡해 Python 3.6.1에 μžˆμŠ΅λ‹ˆλ‹€.

ipython μ½”λ“œμ—μ„œ 컀널 μ„œλ²„μ™€ GUI κ°„μ˜ 톡합이 λ°œμƒν•΄μ•Ό ν•˜λŠ” μœ„μΉ˜λ₯Ό μ•Œλ €μ€„ 수 μžˆμŠ΅λ‹ˆκΉŒ?

이벀트 루프 톡합이 μž‘λ™ν•˜λŠ” 방식에 λŒ€ν•œ μ„€λͺ…은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. http://ipython.readthedocs.io/en/stable/config/eventloops.html#event -loops-in-the-kernel

그리고 Qt 5 이벀트 λ£¨ν”„μ˜ μ½”λ“œλŠ” https://github.com/ipython/ipykernel/blob/20426cdad71820642dc69b95c30565d155521509/ipykernel/eventloops.py#L89μ—μ„œ μ‹œμž‘λ©λ‹ˆλ‹€.

ν™•μΈν•˜κΈ° μœ„ν•΄ - λ¬Έμ œκ°€ ν™•μ‹€νžˆ %matplotlib 의 "matplotlib" 뢀뢄에 있고 일반적으둜 λ§ˆμˆ μ—λŠ” λ¬Έμ œκ°€ μ—†λŠ” κ²ƒμž…λ‹ˆκΉŒ? λ‹€λ₯Έ λ§ˆλ²•μ„ μ‹€ν–‰ν•˜λŠ” 데 μ‹œκ°„μ΄ 덜 κ±Έλ¦¬λ―€λ‘œ 버그가 덜 λˆˆμ— λ„λŠ” 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬.

λ¬Έμ œλŠ” %gui qt λ§ˆλ²•μ—μ„œλ„ λ°œμƒν•˜μ§€λ§Œ 일뢀 μƒν™©μ—μ„œλŠ” matplotlibλ₯Ό κ°€μ Έμ˜€λ €κ³  μ‹œλ„ν•˜λ―€λ‘œ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이것은 matplotlib λ˜λŠ” λ§ˆλ²•κ³Ό (직접) 관련이 μ—†μŠ΅λ‹ˆλ‹€. μ‡Όλ₯Ό μ‹€ν–‰ν•˜λŠ” ν•œ 이벀트 λ£¨ν”„μ—μ„œ λ‹€λ₯Έ 이벀트 λ£¨ν”„λ‘œ ν•Έλ“œμ˜€ν”„λ₯Ό μˆ˜ν–‰ν•  λ•Œ 거의 ν™•μ‹€νžˆ 경쟁 μ‘°κ±΄μž…λ‹ˆλ‹€.

λ‚΄ 생각에 https://github.com/ipython/ipython/pull/10301/files에 λŒ€ν•œ μœ μ‚¬ν•œ μˆ˜μ •μ΄ 여기에 ν•„μš”ν•œ κ²ƒμž…λ‹ˆλ‹€.

Spyderλ₯Ό μ—…λ°μ΄νŠΈν•œ ν›„ λΉ„μŠ·ν•œ λ¬Έμ œμ— μ§λ©΄ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 이것이 %gui qtμ—μ„œ μ—¬μ „νžˆ λ°œμƒν•˜κ³  μžˆμŒμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” λ…ΈνŠΈλΆμ—μ„œ ν˜ΈμΆœν•˜λŠ” λ§Žμ€ Qt ν•­λͺ©μ„ 가지고 있으며 κ·Έ λ…ΈνŠΈλΆμ—μ„œ 첫 번째 셀을 μˆ˜λ™μœΌλ‘œ μ‹€ν–‰ν•˜κ³  μ™„λ£Œλ  λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦° λ‹€μŒ μ•„λž˜μ—μ„œ λͺ¨λ‘ μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰