μ΄κ²μ μ΄μν λ²κ·Έμ΄μ§λ§ μμ€ν μ 체μμ μ¬ν κ°λ₯ν κ² κ°μ΅λλ€.
첫 λ²μ§Έ μ μ΄ μλ λ ΈνΈλΆμ΄ μλ κ²½μ°
%matplotlib qt
κ·Έλ¦¬κ³ "λͺ¨λ μ€ν"μ μ ννλ©΄ IPythonμ΄ μ²« λ²μ§Έ μ
μ μ€ννμ§λ§ μ€λ¨λ©λλ€. μ€λ₯Έμͺ½ μλ¨μ μν μμ΄μ½μ μ΄λ¦° μμ΄μ§λ§ λ€λ₯Έ μ
μ μ€νν μ μμ΅λλ€. %matplotlib
ν λ€μ κ°λ¨ν print λ¬Έμ μΆκ°νλ©΄ μ€νλμ΄ μΆλ ₯ μμμ μΈμλ©λλ€.
μ μ "μλμΌλ‘" μ€ννλ©΄ μ΄λ° μΌμ΄ λ°μνμ§ μμ΅λλ€. κ·Έλ° μΌμ΄ λ°μνλ©΄ λ¬Έμ μμ΄ "λͺ¨λ μ€ν"μ μ νν μ μμ΅λλ€.
μ΄κ²μ OSX 10.6κ³Ό 10.8μ IPyhton 2.0μμ λ°μν©λλ€. μλμ½λ€λ₯Ό ν΅ν΄ Python 2.7μ μ¬μ©νκ³ μμ΅λλ€.
μ΄κ²μ λ μΆμ νκΈ° μν΄ λ¬΄μμ΄λ μλνκ² λμ΄ κΈ°μ©λλ€...
Windowsμ minicondaμμ Python 2.7μ μ€μΉν λλ λΉμ·ν κ²μ μ μ μμ΅λλ€. 첫 λ²μ§Έ μ μ΄ μλ λ ΈνΈλΆμ΄ μλ κ²½μ°:
%pylab
"λͺ¨λ μ€ν"μ ν΄λΉ νΉμ μ μ μ체μ μΌλ‘ μλμΌλ‘ μ€νν νμλ νμ μ€λ¨λ©λλ€. κ·Έλ° λ€μ λ ΈνΈλΆμ΄ 무μμ΄λ μλ΅νλλ‘ νλ €λ©΄ 컀λ->λ€μ μμν΄μΌ ν©λλ€. λ΄ ν΄κ²° λ°©λ²μ ν΄λΉ μ μ μ체μ μΌλ‘ μλμΌλ‘ μ€ννκ³ λ€μ μ λ‘ μ΄λν λ€μ "μλμμ λͺ¨λ μ€ν"νλ κ²μ λλ€.
μ΄ λ¬Έμ λ₯Ό λ μμΈν μΆμ νλ λ° λμμ΄ λλ μΆκ° μ 보λ₯Ό μ 곡νκ² λμ΄ κΈ°μ©λλ€.
λλ λν μ΄κ²μ νμΈν μ μμ΅λλ€ (κ·Έλ¦¬κ³ %matplotlib
μ μΌλΆ κ°μ Έμ€κΈ°κ° μλ 첫 λ²μ§Έ μ
μ΄ μκ³ (μ€ννλ λ° μ½κ°μ μκ°μ΄ μμλ¨) λ€μ μ
κ³Ό ν¨κ» μ€ννλ €λ κ²½μ° λ€μ μ±κ°μ μΌμ
λλ€.
μ΄κ²μ μ¬ννλ κ°λ¨ν λ°©λ²:
%matplotlib
import time
time.sleep(10)
print "This will not print"
λ°λΌμ λ°λμ "λͺ¨λ μ€ν"κ³Ό κ΄λ ¨μ΄ μλ κ²μ μλμ§λ§ νλμ μ
μ %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:
μλ©΄ ν΄κ²° λ°©λ²μ κ±°μ ν¨κ³Όκ° μμ΅λλ€. λλ κ·Έκ²μ΄ μλνλ κ²μ λμ΄ λ² λ³΄μμ§λ§ μλν λλΆλΆμ κ²½μ° λ ΈνΈλΆμ΄ μ¬μ ν λ©μ·μ΅λλ€.
μΌκ΄λκ² μλνλ μ μΌν ν΄κ²° λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
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μ λλ€.
@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 νλͺ©μ κ°μ§κ³ μμΌλ©° κ·Έ λ ΈνΈλΆμμ 첫 λ²μ§Έ μ μ μλμΌλ‘ μ€ννκ³ μλ£λ λκΉμ§ κΈ°λ€λ¦° λ€μ μλμμ λͺ¨λ μ€νν΄μΌ ν©λλ€.
κ°μ₯ μ μ©ν λκΈ
λ¬Έμ λ
%gui qt
λ§λ²μμλ λ°μνμ§λ§ μΌλΆ μν©μμλ matplotlibλ₯Ό κ°μ Έμ€λ €κ³ μλνλ―λ‘ νμ€νμ§ μμ΅λλ€.