Python 3์ Python์ ๋ฏธ๋์ด๋ฉฐ Mopidy๊ฐ ๋ฐฐํฌ๋ ํ๊ฒฝ์์ ๋๋ฆฌ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ Python 3.3 ์ด์์ด ํ์ํ asyncio๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฐ ๋งค์ฐ ๊ด์ฌ์ด ์์ต๋๋ค. Mopidy ํ๋ก์ ํธ ์ธ๋ถ์๋ Python 3์ผ๋ก ์ด๋ํ๋ ๋ฐ ๋ฐฉํด๊ฐ ๋๋ ์์๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ Python 3์์ Mopidy๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ์ถ์ ํ๋ ๋ง์คํฐ ๋ฒ๊ทธ์ ๋๋ค.
from __future__ import unicode_literals
์ด๋์๋ ์ฌ์ฉํ๊ณ ์ด์ง ๋ฌธ์์ด์ b'foo'
.2to3
๋๊ตฌ๋ก ์๋ณ๋ ์ด์์ฑ ๋ฌธ์ ๋ฅผ ์ ํ์ ์ผ๋ก ์์ ํฉ๋๋ค.์๋ ํ์ธ์, ์ ๋ Python 3 ๋ง์ด๊ทธ๋ ์ด์ , ํนํ ์งํ ์ค์ธ ์์ ์ ๋๊ณ ์ถ์ต๋๋ค. ๋๊ตฌ์ ๋ฐ๋ ๋ฐ๊ณ ์ถ์ง ์๋ค
๋๋ jodal/feature/py3-compat์์ ๋ค์๊ณผ ๊ฐ์ ์ง์ ์ ์์ํ์ต๋๋ค.
๋ฉฐ์น ์ ์ Mopidy 2.0.0 ์์ ๋ธ๋์น๋ฅผ ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ฒ์ ์ ์ธํ๊ณ ๋ 11์ ์ดํ๋ก ์ด๊ฒ์ ๊ฑด๋๋ฆฌ์ง ์์์ต๋๋ค. ํ์ฌ ์ํ๋ ์ฝ 1000๊ฐ์ ํ ์คํธ๋ฅผ ์์ ํ์ผ๋ฉฐ ์ฝ 240๊ฐ์ ํ ์คํธ๊ฐ ๋จ์ ์์ต๋๋ค.
์์ผ๋ก์ ๊ณํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ข์, ๋๋ ๊ทธ ์ง์ ์์ ๋ถ๊ธฐํ๊ณ ๋ด๊ฐ ํ ์ ์๋ ๋ชจ๋ ํ ์คํธ๋ฅผ ์์ ํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ด๋ค
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ, ์ด ๋ฌธ์ ์ ๋ํ ์์์ด ์์ต๋๊น?
3๋ ๋ฐ ๋จ์์ต๋๋ค ๐
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
Python 3์ผ๋ก ํฌํ ํ๋ ๊ฒ์ Mopidy์์ ์์ ํ ๋ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ฅ ์ฐ์ ์ํ๋ ์์ ์ ๋๋ค. ๋ฌธ์ ๋ ์ ๊ฐ ์๋ ์ ์์ ์ผ๋ก ๊ฝค ๋ฐ๋นด๋ค๋ ๊ฒ์ ๋๋ค.
๋๋ต์ ์ธ ์์๋ก ํ์ฌ ๊ณํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ณด์๋ค์ํผ, ์ด์ ์์ฒด๋ฅผ ์์ํ๊ธฐ ์ ์ ๋จผ์ ์ํํด์ผ ํ๋ ๋ช ๊ฐ์ง ์์ ์ด ์์ต๋๋ค. ๊ทธ๋ ๊ธด ํ์ง๋ง, ๊ฐ์ฅ ํฐ ์์ ์ ์ด๋ฏธ ์๋ฃ๋์์ต๋๋ค. Python 3์์ ์์ ํ๋๋ก pyspotify๋ฅผ ๋ค์ ์์ฑํ๊ณ (์ฌ๊ธฐ์ 2๋ ์ ์ฌ๊ฐ ์๊ฐ์ ๋ณด๋์ต๋๋ค) Mopidy๋ฅผ GStreamer 1.x๋ก ์ด์ํฉ๋๋ค(์ฌ๊ธฐ์์ ํ ๋ฒ์ ์ก์ ํด์ง).
๊ฐ๋ณด๊ฒ ์ต๋๋ค๋ง ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ์ฌ๋๋ค์ด ๋๊ณ ์ถ๋ค๋ฉด Mopidy๊ฐ 2+3์ ์ง์ํ๋ ์ฆ์ Python 3์ ๋ํ ํฌํธ ํ์ฅ์ ๋๋ ๊ฒ์ด ๊ฐ์ฅ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ฐ์ดํธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค, @jodal.
Python3์ผ๋ก ์ด๋ํ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋๋ mopidy์์ ์ฒ์์ด๊ณ ๊ทธ๊ฒ์ ๊ธฐ์ฌํ ์ ์ด ์์ต๋๋ค. ๋น์ ์ ๋ด๊ฐ
๋ญ๊ฐ ๋์์ค ์ ์์ด?
El miรฉ., 3์ 22์ผ de 2017 a la(s) 07:08, Frederick Gnodtke <
์๋ฆผ@github.com> ์ค๋ช
:
์ ๋ฐ์ดํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. @jodal https://github.com/jodal .
โ
์ด ์ค๋ ๋์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/mopidy/mopidy/issues/779#issuecomment-288352544 ๋๋ ์์๊ฑฐ
์ค๋ ๋
https://github.com/notifications/unsubscribe-auth/AHQMO8UqLNKzfVQZAZJ3Pnjx2N7MsHg4ks5roPMEgaJpZM4CMq8p
.
์ ์ง ๊ด๋ฆฌ ๋ถ๋ด์ ๋์ด์ฃผ๋ ํ๋ก์ ํธ์ ๋ํ ๋์์ ์ ์ง ๊ด๋ฆฌ์๊ฐ ๋ ํฐ ๋ฌธ์ ๋ฅผ ์ค์ค๋ก ํด๊ฒฐํ๊ฑฐ๋ ๋ ํฐ ๊ธฐ์ฌ์ ๋ํด ์ ์ ํ ์ฝ๋ ๊ฒํ ๋ฅผ ์ํํ ์๊ฐ์ ํ๋ณดํ๊ธฐ ๋๋ฌธ์ Python 3๊ณผ ๊ฐ์ ํฐ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์๋นํ ํผ๊ณคํ๊ณ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฝ๋๋ค. ๋ ๊ฐ์ง ์ฃผ์ ์๋ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น ํ๊ณ ๊ฐ๋ฅํ ๋ฒ๊ทธ๋ฅผ ์ฌํํ๊ณ ์ฌํํ๋ ๋ฐ ํ์ํ ๋จ๊ณ๋ฅผ ์ต์ํํ๊ณ ๋ฌธ์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฌธ์ํํ๋๋ก ๋๋ ๊ฒ์ ๋๋ค.
@jodal ์ด๋์์ python3์ผ๋ก ์์ ์ ๋ณผ ์ ์์ต๋๊น?
๋ฌธ์ ์ธ์ฌ
@jodal ๋น์ ์ด ์ธ๊ธํ py3-compat ๋ธ๋์น๋ ์ฝ๊ฐ... ๋ฒ๋ ค์ง ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. ์ด๋๊ฐ์ ์๋ก์ด ๊ฒ์ด ์์ต๋๊น?
ํ์ฅ ํ๋ก๊ทธ๋จ ์์ฑ์ ๊ณ ๋ ค ์ค์ด๋ฉฐ ๋ถ์พํ py2 ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ธฐ์ตํ๋ ๊ฒ๋ณด๋ค ๋ถ์์ ํ mopidy ๋ถ๊ธฐ์์ ์ผ๋ถ py3 ๋ฒ๊ทธ๋ฅผ ํ๊ณ ๋๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
์ด์ ๋ํ ์ํ๋ ์ด๋ป์ต๋๊น? python3์์ ์ฌ์ฉํ ์ ์๋ mopidy ๋ฒ์ ์ด ์์ต๋๊น?
์ข ์์ฑ pylast๋ ๊ณง ๋ ๊ฑฐ์ Python 2์ ๋ํ ์ง์์ ์ค๋จํ ์์ ์ ๋๋ค: https://github.com/pylast/pylast/issues/265
์๋
ํ์ธ์,
ํ์ฌ ๋ฐ๋น์์์ pylast๋ฅผ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค. ๋ ์ด์ Python 2.7์ ์ง์ํ์ง ์๋ ์ต์ ๋ฒ์ ([1])์ ์
๋ก๋ํ๋ ค๊ณ ํฉ๋๋ค.
mopidy๊ฐ ์ฌ์ ํ Python 2๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ 2์ ๋ง์ ์ด ๋ฒ์ ์ ๊ฒ์ํ ๊ณํ์
๋๋ค.
mopidy๋ ๋๋ผ์ด ์ํํธ์จ์ด์ด๊ธฐ ๋๋ฌธ์ ์์น์ค๋ฌ์ธ ์ ์๋ ๋ค์ Debian ๋ฆด๋ฆฌ์ค์์:smiley:
์ด๊ฒ ์งํ๋๊ณ ์๋ ๊ณต์ ์ง์ ์ด ์์ต๋๊น? ๋๋ ์ด ์ผ์ด ์ผ์ด๋๋๋ก ๊ธฐ๊บผ์ด ๋๊ณ ์ถ๋ค
๋ฌธ์ ์ธ์ฌ
@jodal ์ฌ๊ธฐ์ ํ์ฅ ๊ธฐ๋ฅ์ด ์ฐจ๋จ๋์ด ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ๊ฐ ํ์ฅ์ ๋ํ ๋ฌธ์ ๋ฅผ ์ด๊ณ ์ฌ๊ธฐ์์ ์ฐธ์กฐํ์ฌ ์ถ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ค ๋ณ๊ฒฝ์ด ํ์ํ ์ ์๋์ง์ ๋ํ ๋ฌธ์ ์ ๋ํ ์ง์นจ์ ์ ๊ณตํ ์ ์๋ค๋ฉด Python์ ์ต์ํ์ง ์์ ์ฌ๋๋ค(์ ์ ๊ฐ์ด)์ด ์ฌ์ ํ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ถ์ : ์ ๊ฐ ์ฌ์ฉํ๋ ํ์ฅ ํ๋ก๊ทธ๋จ(GMusic, Iris, Podcast, Scrobbler, Spotify)์ ๋์๋๋ฆด ์ ์์ด์ ๊ธฐ์ฉ๋๋ค. ํ์ฌ๋ก์๋ ๋ฌด์์ ํด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ, ๋๊ตฐ๊ฐ python3์ ๋ํ ์ ์ ์ํ๋ฅผ ๋ช ํํ ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ฒซ ๋ฒ์งธ python3 ๋ฒ์ ์ด ์ธ์ ์ถ์๋ ์ง ์์ํ ์ ์์ต๋๊น? ๊ฐ์ฌ ํด์.
๋๋ ์ฌ์ ํ Mopidy๋ฅผ Python 3์ผ๋ก ์ด์ํ๋ ๋ฐ ์ ๋ ํ๊ณ ์์ต๋๋ค. ๋๋ Mopidy๊ฐ Python 2์ ํจ๊ป ์ฃฝ๊ฒ ๋์ง ์์ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ฅผ Python 3์ผ๋ก ์ฎ๊ธฐ๋ ๋๋ถ๋ถ์ ์์ ์ ๋ชจ๋ ์ข ์์ฑ์ด Python 3์์ ์๋ํ๋๋ก ํ๊ธฐ ์ํด ๋ช ๋ ์ ์ ์๋ฃ๋์์ต๋๋ค.
์ด ๋ฌธ์ ์ ์ค๋ ์ญ์ฌ์ ๋ฌธ์ ์ถ์ ๊ธฐ์ ์ํ ์ฌ์ด์์ ์ฝ์ ์ ์๋ฏ์ด, ์ด ํ๋ก์ ํธ์ ์ผ๋ฐ์ ์ผ๋ก ์คํ ์์ค๋ ๋๊ธฐ์ ์์ ์คํํธ์ ์ผ๋ก ์ด์งํ ์ดํ๋ก ์ ์ต์ฐ์ ์์๊ฐ ์๋์์ต๋๋ค. 3 ๋ ์ .
๊ทธ๋ฌ๋ ์ฒ์ฒํ ๋ค์ ์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ ์์ต๋๋ค. ์ ๋ ํ ๋ฒ์ ํ ํ๋ก์ ํธ์ ์ง์คํ๊ณ ๋ค์ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ ์ ์ ๋ฐฐ์กํ๋ ค๊ณ ํฉ๋๋ค. ์ง๊ธ๊น์ง Mopidy.js ์ Mopidy-MPRIS ๋ ์ฝ๊ฐ์ ๋ถ๋๋ฌ์ด ์ฌ๋๊ณผ ๊ด์ฌ์ ๋ฐ์์ต๋๋ค. ํ์ฌ ์ ๋ Pykka ์ ์๋ก์ด ๋ฆด๋ฆฌ์ค๋ฅผ ์์ ์ค์ ๋๋ค. ๋ค๋ฅธ ์์ ๊ฐ์ ์ฌํญ ์ค ํ๋๋ ๋ง์ Mopidy ์ค์ ์ ์์ ์๊ฐ์ ํฐ ์์ธ์ผ๋ก ์ค์ฌ์ค ๊ฒ์ ๋๋ค.
Pykka 2๊ฐ ์ถ์๋๋ฉด ์ ์ฃผ์ ๋ชฉํ๋ Mopidy๋ฅผ Python 3์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋๋ค.
๋๋ ๊ทธ ์์ ์ด ์ธ์ ์๋ฃ๋ ๊ฒ์ธ์ง์ ๋ํ ์์ ์๊ฐ์ ์ ๊ณตํ์ง ์์ ๊ฒ์ ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ ๋จ์ํ ์คํจ์ ๋๋นํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ชจ๋ ์ธ๋ถ ์์ธ๊ณผ ๋๊ธฐ์ ํฌ๊ฒ ์์กดํฉ๋๋ค.
๋์์ ์ฃผ๋ ๊ฒ๊ณผ ๊ด๋ จํ์ฌ ์๋ก์ด ๊ธฐ์ฌ์๊ฐ ์ง์ ๋ ธ๋ ฅ์ ํฌ๊ฒ ๋์ธ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ง์ง ์์ต๋๋ค. ๋๋ ์ฌ์ ํ ์์ธก ๊ฐ๋ฅํ๊ณ ๊ท์น์ ์ธ ๋ฐฉ์์ผ๋ก ์คํ ์์ค ์์ ์ผ๋ก ๋์๊ฐ์ง ์์๊ธฐ ๋๋ฌธ์ PR ๊ฒํ ๋ ์ ๋น์ฌ์์๊ฒ ๊ธ์ธ ์์์ ์๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค. ์ด ๋ฌธ์ ์์ ์ด์ ์ ์ธ๊ธํ๋ฏ์ด ์ผ๋ฐ์ ์ธ ์ ์ง ๊ด๋ฆฌ ๋ถ๋ด์ ์ค์ด๋ ๋ฐ ๋์์ด ๋๋ ๊ฒ์ ํญ์ ๊ฐ์ ์ ์ผ๋ก ๋์์ด ๋ฉ๋๋ค.
๋ค๋ฅธ ํต์ฌ ๊ฐ๋ฐ์์ ๊ฒฝ์ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํ์ง๋ง ์ฐ๋ฆฌ ๋ชจ๋์๊ฒ๋ ์ฐ์ ์์์ ํ๋ก์ ํธ๊ฐ ์์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ์ ์๊ฐ๊ณผ ๋๊ธฐ๊ฐ ๋ชจ๋ ๋ง์ถฐ์ง๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ด ๋ชจํผ๋ 3๋ฅผ ์ ๋๋ก ์์ํ๊ธฐ๋ง ํ๋ฉด ํฉ๋ฅํ๋ฉด ์ข๊ฒ ์ง๋ง ๊ธฐ๋๋ ํ์ง ์์ต๋๋ค.
์ถ๊ณผ ๋ชจ๋ ๊ฒ์ ๋ํ ๋ด ๋ชจ๋ ์ก๋ด์ ์ ์ณ๋๊ณ ์ด๊ฒ์ ๊ฑฐ์ฐฝํ ์์ ๋ ๋ด๊ฐ ์ต์ํ์ง ์์ ์์ ๋ ์๋๋๋ค. ์ด๊ฒ์ ์ฃผ๋ก ํ๋์ ์ฃผ์ ์ด์ ์ด ๋ ์ ์๋๋ก ๋ค๋ฅธ ์งํ ์ค์ธ ์์ ์ ์๋ฃํ๋ ๋ฌธ์ ์ ๋๋ค.
2017๋ 3์์ ์ฌ๊ธฐ์ ๋ง์ง๋ง ๊ณํ์ ์์ฑํ ์ดํ๋ก Python 3 ์ฑํ์ด ์ง๊ธ๊น์ง ์งํ๋์ด ๋ ์ด์ Python 2์์ 2+3์ ๊ฑฐ์ณ Python 3์ผ๋ก๋ง ์ ์ง์ ์ผ๋ก ๋จ๊ณ๋ฅผ ๋ฐ์์ผ ํ ์์ ์ ์ ์ ์์ต๋๋ค. Mopidy 2.x๋ 3๋ ๋์ ์ฐ๋ฆฌ์๊ฒ ์์ฃผ ์ข์ ์ญํ ์ ํ์ผ๋ฉฐ ์ด๋ค ์ด์ ์์๋ Python 2์ ๊ฐํ ์ฌ๋๋ค์ ๋จ๊ฒจ๋ ์ ์๋ ํ๋ฅญํ๊ณ ์์ ์ ์ธ ์ฅ์๊ฐ ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ 2017๋ 3์๋ถํฐ ๊ณํ์ ์์ ํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ์์ํฉ๋๋ค.
pip install mopidy
์คํํ๋ ์ฌ๋๋ค์๊ฒ๋ ์ํฅ์ ๋ฏธ์น์ง ์์ง๋ง ์ด์๋ ํ์ฅ ํ
์คํธ๋ฅผ ์ํ ์ํํ์ ์ค์นํ๊ธฐ ์ํด pip install --pre mopidy
๋ฅผ ์คํํ ์ ์์ต๋๋ค.5๊ฐ์์ด ์ง๋ฌ์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ์ ๋ฐ์ดํธํ ๋๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ง๋ ์๊ฐ์ ๋ง์๋๋ฆฐ Pykka ๋ฆด๋ฆฌ์ค๋ 6์ฃผ ์ ์ Pykka 2.0์ผ๋ก ์ถ์๋์์ต๋๋ค. ๊ทธ ์ดํ๋ก ๋๋ ๋ค์ Mopidy ์์ ์ ์์ํ์ต๋๋ค.
release-2.2
๋ถ๊ธฐ์ ๋ฆด๋ฆฌ์ค๋์ง ์์ ๊ฒ์ด ์์ต๋๋ค.develop
๋ถ๊ธฐ์์ ์ฌ์ฉ๋์ง ์๋ ๋๋ถ๋ถ์ ํญ๋ชฉ์ด ์ ๊ฑฐ๋์์ต๋๋ค.๋ค์์ ์๋ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
mopidy ์ฝ์ด๋ mopidy-soundcloud ํ๋ฌ๊ทธ์ธ์ด python3์์ ์๋ํ๋๋ก ํ๊ธฐ ์ํด ์ ๊ฐ ํ ์ ์๋ ์ผ์ด ์์ต๋๊น?
์ง๊ธ๊น์ง @jodal์ ์ด์ฉํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
Python 3 ๋ฒ์ ์ Sphinx๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์๋ฅผ ๋น๋ํ ๋ ๋ฌธ์๋ฅผ ์ด๋ป๊ฒ ์ค์นํด์ผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค(ํจํค์ง ๋ชฉ์ ์ผ๋ก ์์ฒญ)?
๋๋ make -C docs SPHINXBUILD=sphinx-build-2 man
ํ์ง๋ง sphinx-build-3
๋ํด ๋ณ๊ฒฝํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
make: Entering directory '/home/builder/aports/community/mopidy/src/Mopidy-3.0.0a1/docs'
sphinx-build-3 -b man -d _build/doctrees . _build/man
Running Sphinx v1.8.4
Configuration error:
The configuration file (or one of the modules it imports) called sys.exit()
์ด๊ฒ์ 2.2.3๊ณผ 3.0.0a1 ๋ชจ๋์์ ๋ฐ์ํฉ๋๋ค. ์๋๋ฉด ์ด ๋ถ๋ถ์ด ์์ง ์ด์๋์ง ์์ ๊ฒ์ ๋๊น?
์ด์จ๋ v3๊ฐ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๊นจ๊ณ python2๊ฐ 1์์ ์ข ๋ฃ๋๋ค๋ ์ ์ ๊ฐ์ํ ๋ v3์์ python2 ํธํ์ฑ์ ์ ์งํด์ผ ํ๋ ์ด์ ๊ฐ ์์ต๋๊น?
@tmccombs ๋ ๋ค์๊ณผ
์ด์จ๋ v3๊ฐ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๊นจ๊ณ python2๊ฐ 1์์ ์ข ๋ฃ๋๋ค๋ ์ ์ ๊ฐ์ํ ๋ v3์์ python2 ํธํ์ฑ์ ์ ์งํด์ผ ํ๋ ์ด์ ๊ฐ ์์ต๋๊น?
์๋์, ์ฐ๋ฆฌ๋ Mopidy 3์์ Python 2 ํธํ์ฑ์ ์ ์งํ ๊ณํ์ด ์๋๋๋ค.
2์์ ์ ๋ฅผ ์ธ์ฉํ์๋ฉด:
2017๋ 3์์ ์ฌ๊ธฐ์ ๋ง์ง๋ง ๊ณํ์ ์์ฑํ ์ดํ๋ก Python 3 ์ฑํ์ด ์ง๊ธ๊น์ง ์งํ๋์ด ๋ ์ด์ Python 2์์ 2+3์ ๊ฑฐ์ณ Python 3์ผ๋ก๋ง ์ ์ง์ ์ผ๋ก ๋จ๊ณ๋ฅผ ๋ฐ์์ผ ํ ์์ ์ ์ ์ ์์ต๋๋ค. Mopidy 2.x๋ 3๋ ๋์ ์ฐ๋ฆฌ์๊ฒ ์์ฃผ ์ข์ ์ญํ ์ ํ์ผ๋ฉฐ ์ด๋ค ์ด์ ์์๋ Python 2์ ๊ฐํ ์ฌ๋๋ค์ ๋จ๊ฒจ๋ ์ ์๋ ํ๋ฅญํ๊ณ ์์ ์ ์ธ ์ฅ์๊ฐ ๋ ๊ฒ์ ๋๋ค.
@PureTryOut ์ ๋ค์๊ณผ
์ด๊ฒ์ 2.2.3๊ณผ 3.0.0a1 ๋ชจ๋์์ ๋ฐ์ํฉ๋๋ค. ์๋๋ฉด ์ด ๋ถ๋ถ์ด ์์ง ์ด์๋์ง ์์ ๊ฒ์ ๋๊น?
Mopidy๋ ์์ง Python 3์ผ๋ก ์ด์๋์ง ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ๋จ์ํ ์์ ์ ์ํํ๊ณ ๋ ์ฝ๊ฒ ์ ํํ ์ ์๋๋ก ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ํญ๋ชฉ์ ์ ๊ฑฐํ์ต๋๋ค. ์ด์์ด ์๋ฃ๋๋ฉด Python 3์์ ์คํ๋๋ Sphinx๋ก ๋ฌธ์๋ฅผ ๋น๋ํฉ๋๋ค.
๋ค์ ๋ฆด๋ฆฌ์ค(2.4.0?)๊ฐ Python 3๊ณผ ํธํ๋๋์ง ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ถ๋ถ์ ๋ฐฐํฌํ์ Python 2 ํจํค์ง๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ํ์์ ๊ฒฝ์ฐ Alpine Linux๋ ๋ค์ ๋ฆด๋ฆฌ์ค(3.11, ๋ด๋ 1์ ๋ง)๊น์ง Python 2๋ฅผ ์ญ์ ํฉ๋๋ค. ์ฆ, ๊ทธ๋๊น์ง Python 3๊ณผ ํธํ๋์ง ์์ผ๋ฉด Mopidy๊ฐ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ญ์ ๋ฉ๋๋ค.
Mopidy 3.0์ Python 3๊ณผ ํธํ๋ฉ๋๋ค. ์ฌํด ๋ง ์ด์ ์ ์ถ์ํ ๊ณํ์ ๋๋ค.
์๋ ํ์ธ์ @jodal๋ , ์์ผ๋ก ๋ช ์ฃผ ๋์ Python 3 ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ์ํด ์ฌ๋ถ์ ์ฃผ๊ธฐ๊ฐ ์์ ์ ์์ต๋๋ค. mopidy์์ ์ง์ ๋๋ ํ์ฅ์์. ํน๋ณํ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
์๋ ํ์ธ์ @zubieta์ ๋๋ค!
์ฐ๋ฆฌ๋ ์ต๊ทผ์ Python 3์์ ํ ์คํธ ์ค์ํธ์ ~10%๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ๋ ํ ์คํธ ์ค์ ์ ๋ณํฉํ์ต๋๋ค. ๊ณง ๋ณํฉ๋ ๋ช ๊ฐ์ง PR์ด ์์ด ์ด๋ฅผ ~20%๋ก ์ฆ๊ฐ์ํต๋๋ค. ์ด๋ค PR์ด ์ด๋ฏธ ์ด๋ ค ์๋์ง ํ์ธํ์ฌ ์์ ์ ๋ณต์ ํ์ง ๋ง์ญ์์ค. ๋ช ๊ฐ์ง ๋ชจ๋๊ณผ ํด๋น ํ ์คํธ๋ฅผ ๋ ์ด์ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋จ๊ณ๋ณ ๊ฐ์ด๋๋ #1809์ ์ค๋ช ์ ์ฐธ์กฐํ์ญ์์ค.
ํ์ฅ์ Mopidy ์ฝ์ด๊ฐ Python 3์์ ์คํ๋๋ ์ฆ์ ๋ฐ๋ฅผ ๊ฒ์ ๋๋ค.
Mopidy์ Python 3์ ๋ํ ์ํ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค...
Mopidy์ ํ
์คํธ ์ ํ๊ตฐ์ ์๋ ๋ชจ๋ 2016 ํ
์คํธ๋ ์ด์ Python 2.7๊ณผ Python 3.7์์ ๋ชจ๋ ์คํ๋ฉ๋๋ค. ์ด ๋ชจ๋ ์์
์ develop
๋ถ๊ธฐ์ ๋ณํฉ๋ฉ๋๋ค. ์ด์ ์์
์ ๋์์ค @kingosticks ์๊ฒ ํฐ ๊ฐ์ฌ๋ฅผ ๋๋ฆฝ๋๋ค!
๋ฐฉ๊ธ develop
๋ถ๊ธฐ๋ฅผ ์๋ ๊ทธ๋๋ก PyPI์ Mopidy 3.0.0a2 ๋ก
python3.7 -m pip install --pre mopidy
์ด ๋ฆด๋ฆฌ์ค๋ ํ ์คํธ ์ ํ๊ตฐ์ ํต๊ณผํ๊ณ MPD ๋ฐ HTTP์์ ๋ช ๊ฐ์ง ์์ฒญ์ ์๋ตํ๊ณ ์์์ MP3 ํ์ผ์ ์ฌ์ํ๋ ๊ฒ ์ธ์๋ ๊ด๋ฒ์ํ ํ ์คํธ๋ฅผ ๊ฑฐ์น์ง ์์์ต๋๋ค.
Mopidy 3.0.0a2๋ Python 2์ 3์ ๋ชจ๋ ์ง์ํ๋ ์ ์ผํ Mopidy ๋ฆด๋ฆฌ์ค๊ฐ ๋ ๊ฒ์ ๋๋ค. ์ฆ์ Python 2.7 ์ง์์ ์ ๊ฑฐํ๊ณ Mopidy๋ฅผ ๋ณด๋ค ๊นจ๋ํ๊ณ ํ๋์ ์ธ Python ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค ๊ฒ์ ๋๋ค.
์ต์ข ๋ฆด๋ฆฌ์ค์ ๋ํ ๊ณํ์ ๋๋ต ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
3.0 ์ต์ข ๋ฒ์ ์ ํฅํ ํ์ง๊ณผ ๋ณํํ์ฌ "mopidy"๋ฅผ ๊ฒ์ํ์ฌ ์ฐพ์ PyPI ์ ๋๋จธ์ง ๋ํ ๋์ ์ด
๊ด์ฌ ์๋ ๊ฐ ํ์ฅ์ ๋ํด:
76๊ฐ ์ปค๋ฐ, 204๊ฐ ํ์ผ ๋ณ๊ฒฝ, 9832๊ฐ ์ฝ์ (+), 9612๊ฐ ์ญ์ (-) ์ดํ์ ๋ ๋ค๋ฅธ ์ํํ์ด ์์ต๋๋ค. Mopidy 3.0.0a3์ ์ด์ PyPI์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ค์นํ ์ ์์ต๋๋ค.
python3 -m pip install --pre mopidy
3.0.0a2 ์ดํ์ ์๋ก์ด ๊ธฐ๋ฅ:
mopidy.compat
๋ชจ๋์ด ์ฌ๋ผ์ก์ต๋๋ค.# encoding: utf-8
๋๊ธ์ด ์ฌ๋ผ์ก์ต๋๋ค.from __future__ ...
์์
ํ์ด ์ฌ๋ผ์ก์ต๋๋ค.object
์ ๋ชจ๋ ํ์ ๋ถ๋ฅ๊ฐ ์ฌ๋ผ์ก์ต๋๋ค..encode()
๋ฐ .decode()
์๋ ๋ ์ด์ ๋ช
์์ "utf-8"
์ธ์๊ฐ ํฌํจ๋์ง ์์ต๋๋ค.black
์
๋๋ค. :๋ธ๋_ํํธ:isort
๊ฐ ์ด์ ๊ตฌ์ฑ๋์์ผ๋ฉฐ ํ์ํ ๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.mock
๋ unittest.mock
๋ก ๋ฐ๋๋๋ค.assert
๋ฌธ์ผ๋ก ๋์ฒด๋์ด ๋ ๋์ ๊ฐ๋
์ฑ๊ณผ ๋ ๋์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์๋ฏธํฉ๋๋ค.%
๋ฐ .format()
์ ๋๋ถ๋ถ์ ์ธ์คํด์ค๋ f-๋ฌธ์์ด๋ก ๋์ฒด๋ฉ๋๋ค.setup.py
๊ฐ ์ต์ํ๋๊ณ ์ ์ธ์ setup.cfg
๋ก ๋์ฒด๋์์ต๋๋ค.tox.ini
, dev-requirements.txt
๋ฐ docs/requirements.txt
์ข
์์ฑ์ ๋ชจ๋ setup.cfg
"extras"๋ก ๋์ฒด๋ฉ๋๋ค. ์ด๊ฒ์ ๊ฐ๋ฐ ์ข
์์ฑ์ด ์ด์ python3 -m pip install -e ".[dev]"
์ ํจ๊ป ์ค์น๋์์์ ์๋ฏธํฉ๋๋ค.์์ ๊ธธ์ ์ฌ์ ํ โโ์ด์ ๋๊ธ์์ ์ด์์ ์์ฑํ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
Mopidy ์ฝ์ด์ ๊ด๋ จํ์ฌ ์ฌ๊ธฐ์์ ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
Mopidy 3.0 ๊ฒฐ์น์ ๊น์ง์ ๋๋จธ์ง ๊ณผ์ ์ v3.0 ์ด์ ํ์์ ์ถ์ ๋ฉ๋๋ค.
https://github.com/mopidy/mopidy/milestone/55
Python 3์ ๋ํ ์ฃผ์ ํ์ฅ์ ์ด์์ ์ด ํ๋ก์ ํธ ๋ณด๋์์ ์ถ์ ๋ฉ๋๋ค.
https://github.com/orgs/mopidy/projects/2
๊ฐ๊น์ด ์์ผ ๋ด์ Python 3์์ Mopidy๋ฅผ ํ ์คํธํ๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ํด ๋ฌธ์ ๋ฅผ ์ด์ด์ฃผ์ธ์!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ์ฌ์ ํ Mopidy๋ฅผ Python 3์ผ๋ก ์ด์ํ๋ ๋ฐ ์ ๋ ํ๊ณ ์์ต๋๋ค. ๋๋ Mopidy๊ฐ Python 2์ ํจ๊ป ์ฃฝ๊ฒ ๋์ง ์์ ๊ฒ์ ๋๋ค.
์ญ์ฌ
์ฐ๋ฆฌ๋ฅผ Python 3์ผ๋ก ์ฎ๊ธฐ๋ ๋๋ถ๋ถ์ ์์ ์ ๋ชจ๋ ์ข ์์ฑ์ด Python 3์์ ์๋ํ๋๋ก ํ๊ธฐ ์ํด ๋ช ๋ ์ ์ ์๋ฃ๋์์ต๋๋ค.
์ด ๋ฌธ์ ์ ์ค๋ ์ญ์ฌ์ ๋ฌธ์ ์ถ์ ๊ธฐ์ ์ํ ์ฌ์ด์์ ์ฝ์ ์ ์๋ฏ์ด, ์ด ํ๋ก์ ํธ์ ์ผ๋ฐ์ ์ผ๋ก ์คํ ์์ค๋ ๋๊ธฐ์ ์์ ์คํํธ์ ์ผ๋ก ์ด์งํ ์ดํ๋ก ์ ์ต์ฐ์ ์์๊ฐ ์๋์์ต๋๋ค. 3 ๋ ์ .
๊ทธ๋ฌ๋ ์ฒ์ฒํ ๋ค์ ์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ ์์ต๋๋ค. ์ ๋ ํ ๋ฒ์ ํ ํ๋ก์ ํธ์ ์ง์คํ๊ณ ๋ค์ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ ์ ์ ๋ฐฐ์กํ๋ ค๊ณ ํฉ๋๋ค. ์ง๊ธ๊น์ง Mopidy.js ์ Mopidy-MPRIS ๋ ์ฝ๊ฐ์ ๋ถ๋๋ฌ์ด ์ฌ๋๊ณผ ๊ด์ฌ์ ๋ฐ์์ต๋๋ค. ํ์ฌ ์ ๋ Pykka ์ ์๋ก์ด ๋ฆด๋ฆฌ์ค๋ฅผ ์์ ์ค์ ๋๋ค. ๋ค๋ฅธ ์์ ๊ฐ์ ์ฌํญ ์ค ํ๋๋ ๋ง์ Mopidy ์ค์ ์ ์์ ์๊ฐ์ ํฐ ์์ธ์ผ๋ก ์ค์ฌ์ค ๊ฒ์ ๋๋ค.
๋ค์
Pykka 2๊ฐ ์ถ์๋๋ฉด ์ ์ฃผ์ ๋ชฉํ๋ Mopidy๋ฅผ Python 3์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋๋ค.
๋๋ ๊ทธ ์์ ์ด ์ธ์ ์๋ฃ๋ ๊ฒ์ธ์ง์ ๋ํ ์์ ์๊ฐ์ ์ ๊ณตํ์ง ์์ ๊ฒ์ ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ ๋จ์ํ ์คํจ์ ๋๋นํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ชจ๋ ์ธ๋ถ ์์ธ๊ณผ ๋๊ธฐ์ ํฌ๊ฒ ์์กดํฉ๋๋ค.
๋์์ ์ฃผ๋ ๊ฒ๊ณผ ๊ด๋ จํ์ฌ ์๋ก์ด ๊ธฐ์ฌ์๊ฐ ์ง์ ๋ ธ๋ ฅ์ ํฌ๊ฒ ๋์ธ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ง์ง ์์ต๋๋ค. ๋๋ ์ฌ์ ํ ์์ธก ๊ฐ๋ฅํ๊ณ ๊ท์น์ ์ธ ๋ฐฉ์์ผ๋ก ์คํ ์์ค ์์ ์ผ๋ก ๋์๊ฐ์ง ์์๊ธฐ ๋๋ฌธ์ PR ๊ฒํ ๋ ์ ๋น์ฌ์์๊ฒ ๊ธ์ธ ์์์ ์๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค. ์ด ๋ฌธ์ ์์ ์ด์ ์ ์ธ๊ธํ๋ฏ์ด ์ผ๋ฐ์ ์ธ ์ ์ง ๊ด๋ฆฌ ๋ถ๋ด์ ์ค์ด๋ ๋ฐ ๋์์ด ๋๋ ๊ฒ์ ํญ์ ๊ฐ์ ์ ์ผ๋ก ๋์์ด ๋ฉ๋๋ค.
๋ค๋ฅธ ํต์ฌ ๊ฐ๋ฐ์์ ๊ฒฝ์ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํ์ง๋ง ์ฐ๋ฆฌ ๋ชจ๋์๊ฒ๋ ์ฐ์ ์์์ ํ๋ก์ ํธ๊ฐ ์์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ์ ์๊ฐ๊ณผ ๋๊ธฐ๊ฐ ๋ชจ๋ ๋ง์ถฐ์ง๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ด ๋ชจํผ๋ 3๋ฅผ ์ ๋๋ก ์์ํ๊ธฐ๋ง ํ๋ฉด ํฉ๋ฅํ๋ฉด ์ข๊ฒ ์ง๋ง ๊ธฐ๋๋ ํ์ง ์์ต๋๋ค.
์ถ๊ณผ ๋ชจ๋ ๊ฒ์ ๋ํ ๋ด ๋ชจ๋ ์ก๋ด์ ์ ์ณ๋๊ณ ์ด๊ฒ์ ๊ฑฐ์ฐฝํ ์์ ๋ ๋ด๊ฐ ์ต์ํ์ง ์์ ์์ ๋ ์๋๋๋ค. ์ด๊ฒ์ ์ฃผ๋ก ํ๋์ ์ฃผ์ ์ด์ ์ด ๋ ์ ์๋๋ก ๋ค๋ฅธ ์งํ ์ค์ธ ์์ ์ ์๋ฃํ๋ ๋ฌธ์ ์ ๋๋ค.
๋ชจํผ๋ 3
2017๋ 3์์ ์ฌ๊ธฐ์ ๋ง์ง๋ง ๊ณํ์ ์์ฑํ ์ดํ๋ก Python 3 ์ฑํ์ด ์ง๊ธ๊น์ง ์งํ๋์ด ๋ ์ด์ Python 2์์ 2+3์ ๊ฑฐ์ณ Python 3์ผ๋ก๋ง ์ ์ง์ ์ผ๋ก ๋จ๊ณ๋ฅผ ๋ฐ์์ผ ํ ์์ ์ ์ ์ ์์ต๋๋ค. Mopidy 2.x๋ 3๋ ๋์ ์ฐ๋ฆฌ์๊ฒ ์์ฃผ ์ข์ ์ญํ ์ ํ์ผ๋ฉฐ ์ด๋ค ์ด์ ์์๋ Python 2์ ๊ฐํ ์ฌ๋๋ค์ ๋จ๊ฒจ๋ ์ ์๋ ํ๋ฅญํ๊ณ ์์ ์ ์ธ ์ฅ์๊ฐ ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ 2017๋ 3์๋ถํฐ ๊ณํ์ ์์ ํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ์์ํฉ๋๋ค.
pip install mopidy
์คํํ๋ ์ฌ๋๋ค์๊ฒ๋ ์ํฅ์ ๋ฏธ์น์ง ์์ง๋ง ์ด์๋ ํ์ฅ ํ ์คํธ๋ฅผ ์ํ ์ํํ์ ์ค์นํ๊ธฐ ์ํดpip install --pre mopidy
๋ฅผ ์คํํ ์ ์์ต๋๋ค.