Virtualenv: ์„ ํƒ์ ์œผ๋กœ osx์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ python ๋นŒ๋“œ๋ฅผ ์œ„ํ•ด virtualenv์—์„œ pythonw ๋งํฌ ์ƒ์„ฑ

์— ๋งŒ๋“  2011๋…„ 03์›” 14์ผ  ยท  34์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pypa/virtualenv

http://groups.google.com/group/python-virtualenv/browse_thread/thread/83fa4a12d22a30c8/744e19c194f1618a?#744e19c194f1618a wxpython์ด ํ˜„์žฌ OS์˜ python์—์„œ ๊ฐ€์ƒ python์— ์˜ํ•ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๊ณ  foryX์—์„œ ์•„๋‚ ๋กœ๊ทธ๊ฐ€ ์ž‘๋™ํ•˜๋Š”์ง€ ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ๋ชจ๋“œ.

์ด ๋ผ์ธ์— ๋Œ€ํ•œ Ian์˜ ์ด์ „ ํ† ๋ก ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
http://groups.google.com/group/python-virtualenv/browse_thread/thread/b119a3c26aa49238
ํ˜„์žฌ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
http://github.com/gldnspud/virtualenv-pythonw-osx/

์ด๊ฒƒ์„ ํ•ต์‹ฌ ๋ฐฐํฌํŒ์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ ‘๊ทผ ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?


enhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

matplotlib๊ฐ€ ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜๋„๋ก matplotlib ๋ฐฑ์—”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด ๋ณด์‹ญ์‹œ์˜ค.

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ์†”๋ฃจ์…˜์ด (์ ์–ด๋„) ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ์•„๋ž˜์— ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋‘˜ ๋‹ค ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ pip๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ matplotlib๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด...

_1. ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด matplotlibrc ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค_
์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ cd ~/.matplotlib
$ nano matplotlibrc #to create file using nano

ํŒŒ์ผ์— backend: TkAgg ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ข…๋ฃŒ ์‹œ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ๊ฐ€์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

_ ๋˜๋Š” _

_2. ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์ฐธ์กฐํ•˜๋Š” matplotlibrc ํŒŒ์ผ ํŽธ์ง‘_
๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ Python ์…ธ์„ ์—ด๊ณ  ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

import matplotlib
matplotlib.matplotlib_fname()
'/home/foo/.config/matplotlib/matplotlibrc'

์ฐธ๊ณ /์—…๋ฐ์ดํŠธ: ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ฐ„๋‹จํžˆ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

import matplotlib
matplotlib.matplotlib_fname()

๊ทธ๋Ÿฌ๋ฉด ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ matplotlib ํŒจํ‚ค์ง€๊ฐ€ ์ฐธ์กฐํ•˜๋Š” matplotlibrc ํŒŒ์ผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ matplotlibrc ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค. ํŒŒ์ผ์˜ backend ํƒœ๊ทธ๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ backend: TkAgg ๋ฐ save ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

[ ๋˜ํ•œ - _์„ธ ๋ฒˆ์งธ ์ ‘๊ทผ ๋ฐฉ์‹_]
์ด์ „์—๋Š” ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด ์Šคํฌ๋ฆฝํŠธ ์ž์ฒด์—์„œ ๋ฐฑ์—”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด matplotlib๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋ฐฑ์—”๋“œ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

import matplotlib
matplotlib.use('TkAgg')

(์ถ”๊ฐ€ ์„ค๋ช… ๋ฐ ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ์ถœ์ฒ˜ ์ฐธ์กฐ)

์ถœ์ฒ˜:
[1] http://matplotlib.org/faq/usage_faq.html#what -is-a-backend
[2] http://matplotlib.org/users/customizing.html#customizing -matplotlib
[3] http://stackoverflow.com/questions/4130355/python-matplotlib-framework-under-macosx
[4] http://stackoverflow.com/questions/29433824/unable-to-import-matplotlib-pyplot-as-plt-in-virtualenv

๋ชจ๋“  34 ๋Œ“๊ธ€

์ฐธ๊ณ ๋กœ #47 ๊ณผ ์ค‘๋ณต๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฌธ์ œ๋Š” ์ข€ ๋” ๋ชจํ˜ธํ•ฉ๋‹ˆ๋‹ค.


Original Comment By: dan mackinlay

์ด๊ฒƒ์— +1.

์—ฐ๊ฒฐํ•˜๋ ค๋Š” ".Python"๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
http://github.com/gldnspud/virtualenv-pythonw-osx/ ? .Python ๋‚ด ํŒŒํŠธ๋„ˆ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋Œ€์‹  ๋‹ค์Œ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

 (py27) $ laf /Users/glind/venvs/py27//include/python2.7
 /Users/glind/venvs/py27//include/python2.7@ -> /usr/local/Cellar/python/2.7.2/include/python2.7
 (py27) $ which python
 /Users/glind/venvs/py27/bin/python

์ด ๋ฒ„๊ทธ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

http://stackoverflow.com/questions/3692928/why-doesnt-the-save-button-work-on-a-matplotlib-plot
http://code.google.com/p/iterm2/issues/detail?id=1680

.Python ์ด ์—†๋Š” ์ด์œ ๋Š” ์ดˆ๊ธฐ์— brew install python ๋ถ€ํ„ฐ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. brew install python --framework ๋ฐ ๊ธฐํƒ€ Framework ์„ค์น˜๋งŒ .Python dynlib๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์—ฌ์ „ํžˆ ์ˆ˜์ค์€ Matplotlib ์ฐฝ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” 4,5๋…„ ์ „์˜ ๊ฒƒ์ด๋ฉฐ Mac OSX์—์„œ matplotlib๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋ชป์ƒ๊ธด ํ•ดํ‚น์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค . ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‘ ๋ฒˆ์งธ. python 2.7์„ ์„ค์น˜ํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ virtualenv๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

brew install python --framework
virtualenv env
source env/bin/activate
pip install matplotlib

ํ•˜์ง€๋งŒ matplotlib.pyplot ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•˜๋ฉด ๋‹ค์Œ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

Python 2.7.10 (default, Aug 22 2015, 20:33:39)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.1)] on darwin
>>> import matplotlib.pyplot as plt
...
    from matplotlib.backends import _macosx
RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are Working with Matplotlib in a virtual enviroment see 'Working with Matplotlib in Virtual environments' in the Matplotlib FAQ

@nils-werner๊ฐ€ ์–ธ๊ธ‰ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ virtualenv์˜ jupyter ๋…ธํŠธ๋ถ์—์„œ matplotlib(๋ฟ๋งŒ ์•„๋‹ˆ๋ผ)๋กœ ์ž‘์—…ํ•˜๋ ค๋Š” ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๊ฑฐ๋Œ€ํ•œ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๊ฐ€์ด๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. http://blog.rousek.name/2015/11/29/adventure-with-matplotlib-virtualenv-and-macosx/

์–ด........ matplotlib 1.5(์ด์ œ @stlk์—์„œ ๋ฌธ์„œํ™”ํ•œ ๋Œ€๋กœ ๋ฐฑ์—”๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ์— ์‹คํŒจํ•จ)๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. brew๊ฐ€ ์„ค์น˜๋œ python 3.5๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

python ์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๊ฐํ™”์— ๋Œ€ํ•œ ์†Œ๊ฐœ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๊ณ  jupyter์—์„œ ์ฒซ ๋ฒˆ์งธ ์ฝ”๋“œ ์ƒ˜ํ”Œ ์ž‘์„ฑ์„ ์‹œ์ž‘ํ•  ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค. Mac์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค... ์ €๋Š” mac + virtualenv์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์‹œ์Šคํ…œ python์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. .

+1

+1
์„ธ์ƒ์—....
2011๋…„ ๋ฌธ์ œ.. ์•„์ง ํ•ด๊ฒฐ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค .

๊ทธ๋™์•ˆ ์ด ๋ฌธ์ œ(๋ฐ FAQ)์— ์—ฐ๊ฒฐ๋œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ์—ฌ์ „ํžˆ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

$ # install the utility
$ pip install git+https://github.com/gldnspud/virtualenv-pythonw-osx.git
$ # enter the virtualenv with virtualenvwrapper (or manually)
$ workon my-venv
$ # double-check that this is your venv Python binary
$ which python
/Users/macbook/.virtualenvs/my-venv/bin/python
$ # fix it, using magic
$ fix-osx-virtualenv `which python`/../..

์˜ˆ, ๋งค์šฐ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ์•Œ์•„๋‚ด๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๊ฒฐ๊ณผ์ ์œผ๋กœ Matplotlib๋Š” ํ•ด๋‹น venv Python ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ˆœํžˆ ํ˜ธ์ถœํ•จ์œผ๋กœ์จ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ž˜ํผ ์…ธ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š”์ด ํ•ด๊ฒฐ์ฑ…์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ :

  • ๋ชจ๋“  virtualenv์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค).
  • ํŠน์ • ์™ธ๋ถ€ ๋ชจ๋“ˆ์„ ๊ตฌ์ถ•ํ•˜๊ฑฐ๋‚˜ CFFI ๋“ฑ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค(์ •ํ™•ํžˆ ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•จ)

์ด์ƒ์ ์ธ ์†”๋ฃจ์…˜์ฒ˜๋Ÿผ ๋Š๊ปด์ง€์ง€ ์•Š์ง€๋งŒ ์‰ฌ์šด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ virtualenvwrapper ๋ฅผ ์‚ฌ์šฉํ•œ ๋‹ค์Œ ํ›„ํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. virtualenv-pythonw-osx ๋ฐ virtualevnwrapper๋ฅผ ์„ค์น˜ํ•˜๊ณ  ํ›„ํฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด virtualenvwrapper.sh ํŒŒ์ผ์„ ์†Œ์‹ฑํ•œ ๋‹ค์Œ postactivate ์Šคํฌ๋ฆฝํŠธ์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

if [ ! -d $VIRTUAL_ENV/Python.app ]; then
  echo Fixing OSX Python display issues...
  fix-osx-virtualenv $VIRTUAL_ENV
fi

workon ๋ช…๋ น์„ ํ†ตํ•ด ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๊ฐ€์ƒ ํ™˜๊ฒฝ์ด ์ž๋™์œผ๋กœ ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค.

+1

+1

+1

์ด ๋ฒ„๊ทธ๋„ ์น˜์‹ญ์‹œ์˜ค. ์ œ์•ˆ๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณ ์ณ์ง€๋ฉด ์ข‹์„ํ…๋ฐ!

matplotlib๊ฐ€ ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜๋„๋ก matplotlib ๋ฐฑ์—”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด ๋ณด์‹ญ์‹œ์˜ค.

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ์†”๋ฃจ์…˜์ด (์ ์–ด๋„) ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ์•„๋ž˜์— ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋‘˜ ๋‹ค ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ pip๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ matplotlib๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด...

_1. ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด matplotlibrc ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค_
์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ cd ~/.matplotlib
$ nano matplotlibrc #to create file using nano

ํŒŒ์ผ์— backend: TkAgg ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ข…๋ฃŒ ์‹œ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ๊ฐ€์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

_ ๋˜๋Š” _

_2. ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์ฐธ์กฐํ•˜๋Š” matplotlibrc ํŒŒ์ผ ํŽธ์ง‘_
๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ Python ์…ธ์„ ์—ด๊ณ  ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

import matplotlib
matplotlib.matplotlib_fname()
'/home/foo/.config/matplotlib/matplotlibrc'

์ฐธ๊ณ /์—…๋ฐ์ดํŠธ: ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ฐ„๋‹จํžˆ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

import matplotlib
matplotlib.matplotlib_fname()

๊ทธ๋Ÿฌ๋ฉด ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ matplotlib ํŒจํ‚ค์ง€๊ฐ€ ์ฐธ์กฐํ•˜๋Š” matplotlibrc ํŒŒ์ผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ matplotlibrc ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค. ํŒŒ์ผ์˜ backend ํƒœ๊ทธ๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ backend: TkAgg ๋ฐ save ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

[ ๋˜ํ•œ - _์„ธ ๋ฒˆ์งธ ์ ‘๊ทผ ๋ฐฉ์‹_]
์ด์ „์—๋Š” ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด ์Šคํฌ๋ฆฝํŠธ ์ž์ฒด์—์„œ ๋ฐฑ์—”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด matplotlib๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋ฐฑ์—”๋“œ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

import matplotlib
matplotlib.use('TkAgg')

(์ถ”๊ฐ€ ์„ค๋ช… ๋ฐ ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ์ถœ์ฒ˜ ์ฐธ์กฐ)

์ถœ์ฒ˜:
[1] http://matplotlib.org/faq/usage_faq.html#what -is-a-backend
[2] http://matplotlib.org/users/customizing.html#customizing -matplotlib
[3] http://stackoverflow.com/questions/4130355/python-matplotlib-framework-under-macosx
[4] http://stackoverflow.com/questions/29433824/unable-to-import-matplotlib-pyplot-as-plt-in-virtualenv

@wwp3 ์ข‹์€ ๊ธ€, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋Š”์ด ์˜ต์…˜์œผ๋กœ ์šด์ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.

import matplotlib
matplotlib.use('TkAgg')

Jupyter ๋…ธํŠธ๋ถ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ • ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ์˜ ์ผ๋ถ€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์˜ @stlk์ด ๋ฌธ์ œ์— ๋Œ€ํ•œํ•˜๊ธฐ matplotlib์˜ ๋ฌธ์„œ๋ฅผ ๊ฐœ์„  ์ž‘์—…ํ•˜๊ธฐ (์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ํ„ฐ๋ฏธ๋„ ํŒŒ์ด์ฌ์ด / ๋ฎ์—ฌ ipython)

@jenshnielsen ๋ถ€๋‹ด์—†์ด ์‚ฌ์šฉํ•˜์„ธ์š”. ๋„์›€์ด ๋˜์…จ

+1

ํ•ด๊ฒฐ๋˜์—ˆ๋‚˜์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋ ‡์ง€ ์•Š๋‹ค

์ ˆ๋Œ€์ ์œผ๋กœํ•˜์ง€. import ์—์„œ ์ถฉ๋Œํ•˜๋ฏ€๋กœ ์ด์ „๋ณด๋‹ค ๋” ๋‚˜๋น ์กŒ์Šต๋‹ˆ๋‹ค. ์žฌํ˜„ ๋‹จ๊ณ„

virtualenv test
source test/bin/activate
pip install matplotlib
python -c "import matplotlib.pyplot; print 'import succeeded'"

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” PR์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๊นŒ? ์—†๋Š” ๊ฒฝ์šฐ ์ž‘์—… ์ค‘์ธ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์—†๋Š” ์‚ฌ๋žŒ(์ตœ์†Œํ•œ OSX ์„ค์น˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ)์ด ์ˆ˜์ • ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์†Œ ๋ถˆ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋ฏ€๋กœ ์—ฌ๊ธฐ์—์„œ ๊ธฐ์—ฌ์— ์˜์กดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@nils-werner ์žฌ์ƒ์‚ฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์„ค๋ช…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด(์“ฐ๋ ˆ๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์€ "OSX"์ด์ง€๋งŒ ๋ชจ๋“  ๋ฒ„์ „์ธ์ง€, virtualenv ๋ฐ python์˜ ๋ฒ„์ „๊ณผ ์„ค์น˜ ๋ฐฉ๋ฒ•, ๋‹ค๋ฅธ ํŠน์ • ํ•ญ๋ชฉ์„ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€, ์„ค์น˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ ์ •๋ณด๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋“ฑ์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ๋„ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ ์ ˆํ•œ ํ™˜๊ฒฝ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ PR์„ ์ƒ์„ฑํ•˜๊ณ  ์—ฌ๊ธฐ์—์„œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ ๋‹จ๊ณ„์—์„œ ์šฐ๋ฆฌ๋Š” PR์„ ๊ฒ€ํ† ํ•˜๊ณ  ๊ฑฐ๊ธฐ์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@pfmoore ๋‚˜๋Š” ์—ฌ์ „ํžˆ ์ผ๊ด€๋˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์ด์ „ ์˜๊ฒฌ์—์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉ

(๊ธฐ๋ก์šฉ: OS X 10.11.6, Python 3.5.2, matplotlib-1.5.3.)

@nils-werner Matplotlib https://github.com/matplotlib/matplotlib/blob/master/src/_macosx.m#L3071 ์—์„œ OSX ๋ฐฑ์—”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ํ”„๋ ˆ์ž„์›Œํฌ ๋นŒ๋“œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์ฉ๋‹ˆ๋‹ค.

๋Œ€์•ˆ์€ GUI๊ฐ€ ๋ถ€๋ถ„์ ์œผ๋กœ๋งŒ ์ž‘๋™ํ•˜๋Š” ์†Œํ”„ํŠธ ์‹คํŒจ์ž…๋‹ˆ๋‹ค.

WXPython์—๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹Œ ๋นŒ๋“œ์—์„œ WXPython์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ์œ ์‚ฌํ•œ ๊ฒ€์‚ฌ ๋นŒ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ข‹์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ python3์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ venv๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” virtualenv์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
http://matplotlib.org/devdocs/faq/osx_framework.html#introduction

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ PR ์ž‘์—…์„ ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

  1. Python 3์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ stdlib venv
  2. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์–ธ๊ธ‰๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๋ฉ‹์žˆ๋Š”. ์ด ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ์—ด์–ด ๋‘˜ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ช…ํ™•ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ์ฝ”๋“œ ์ˆ˜์ •์€ ์–ด์จŒ๋“  ์ƒˆ๋กœ์šด PR์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฌธ์ œ๋ฅผ ๋‹ซ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค - ์ฝ”๋ฉ˜ํŠธ?

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@wwp3 ์ข‹์•„์š”, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด ์˜ต์…˜์œผ๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ์ƒˆ matplotlibrc ํŒŒ์ผ ์ถ”๊ฐ€
    ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ cd ~/.matplotlib
$ nano matplotlibrc # nano๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์ƒ์„ฑ
๋ฐฑ์—”๋“œ: TkAgg๋ฅผ ํŒŒ์ผ์— ์ž‘์„ฑํ•˜๊ณ  ์ข…๋ฃŒ ์‹œ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ๊ฐ€์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@stlk ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ํ™œ๋™์ด ์—†์œผ๋ฉด ํ์‡„๋ฉ๋‹ˆ๋‹ค. ๊ณ„์† ์—ด์–ด๋‘๊ณ  ์‹ถ๋‹ค๋ฉด ๋Œ“๊ธ€์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

matplotlib๊ฐ€ ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜๋„๋ก matplotlib ๋ฐฑ์—”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด ๋ณด์‹ญ์‹œ์˜ค.

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ์†”๋ฃจ์…˜์ด (์ ์–ด๋„) ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ์•„๋ž˜์— ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋‘˜ ๋‹ค ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ pip๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ matplotlib๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด...

_1. ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด matplotlibrc ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค_
์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ cd ~/.matplotlib
$ nano matplotlibrc #to create file using nano

ํŒŒ์ผ์— backend: TkAgg ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ข…๋ฃŒ ์‹œ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ๊ฐ€์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

_ _ ๋˜๋Š” __

_2. ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์ฐธ์กฐํ•˜๋Š” matplotlibrc ํŒŒ์ผ ํŽธ์ง‘_
๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ Python ์…ธ์„ ์—ด๊ณ  ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

import matplotlib
matplotlib.matplotlib_fname()
'/home/foo/.config/matplotlib/matplotlibrc'

์ฐธ๊ณ /์—…๋ฐ์ดํŠธ: ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ฐ„๋‹จํžˆ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

import matplotlib
matplotlib.matplotlib_fname()

๊ทธ๋Ÿฌ๋ฉด ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ matplotlib ํŒจํ‚ค์ง€๊ฐ€ ์ฐธ์กฐํ•˜๋Š” matplotlibrc ํŒŒ์ผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ matplotlibrc ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค. ํŒŒ์ผ์˜ backend ํƒœ๊ทธ๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ backend: TkAgg ๋ฐ save ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

[ ๋˜ํ•œ - _์„ธ ๋ฒˆ์งธ ์ ‘๊ทผ ๋ฐฉ์‹_]
์ด์ „์—๋Š” ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด ์Šคํฌ๋ฆฝํŠธ ์ž์ฒด์—์„œ ๋ฐฑ์—”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด matplotlib๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋ฐฑ์—”๋“œ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

import matplotlib
matplotlib.use('TkAgg')

(์ถ”๊ฐ€ ์„ค๋ช… ๋ฐ ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ์ถœ์ฒ˜ ์ฐธ์กฐ)

์ถœ์ฒ˜:
[1] http://matplotlib.org/faq/usage_faq.html#what -is-a-backend
[2] http://matplotlib.org/users/customizing.html#customizing -matplotlib
[3] http://stackoverflow.com/questions/4130355/python-matplotlib-framework-under-macosx
[4] http://stackoverflow.com/questions/29433824/unable-to-import-matplotlib-pyplot-as-plt-in-virtualenv

๊ท€ํ•˜์˜ ์ฒซ ๋ฒˆ์งธ ์†”๋ฃจ์…˜์€ ๋งค์šฐ ํ›Œ๋ฅญํ•˜๊ณ  ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๋งˆ์›Œ!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰