์ ์ฌ์ฉํ๊ณ ์๋ Alfred workflow๊ฐ ๋์ํ์ง ์๋๋ค.. Mac OS 12.3์ผ๋ก ์ ๋ฐ์ดํธํ๊ณ ๋์ ๋ฐ๋ก ์ด๋ฐ ์ด์๊ฐ ํฐ์ง๋ค๋. ์๋๊ฐ ์๋ ๋ต๋ตํ๋ค.
Issue ์์ธ
Apple์์ 12.3๋ถํฐ ๊ณต์์ ์ผ๋ก python 2์ ์ง์ํ์ง ์๋๋ค๊ณ ํ๋ค. Python 2๋ ์ด์ ์ง์๋ ์ํด์ฃผ๋ ๋ญ ์ดํด๋ ๊ฐ๋ค.
๋ฌธ์ ๋ Alfred workflow๊ฐ **Python 2 ๋ฒ์ ๋ง์ ์ง์**ํ๋ค๋ ๊ฒ์ด๋ค. (ํ..)
Alfred-Workflow only officially supports the system Pythons that come with macOS (i.e. /usr/bin/python), which is 2.6 on 10.6/Snow Leopard and 2.7 on later versions.
๊ทธ๋์ Workflow ์ ์์๋ค์ด Python library์ธ Alfred-Workflow
๋ก ์ ์ํ ๊ฒฝ์ฐ ์คํฌ๋ฆฝํธ๊ฐ ์๋จน์ด์ ์ด ๋ฌธ์ ๊ฐ ํฐ์ง ๊ฒ.
ํด๊ฒฐ ๋ฐฉ๋ฒ
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค. python2๋ฅผ ์ผ๋จ ๋ค์ ๋ฐ์.
export PATH="/opt/homebrew/bin:/usr/local/bin:${PATH}"
eval "$(brew shellenv)"
brew install pyenv
pyenv install 2.7.18
ln -s "${HOME}/.pyenv/versions/2.7.18/bin/python2.7" "${HOMEBREW_PREFIX}/bin/python"
์์ ์ปค๋งจ๋๋ฅผ ํ๋์ฉ ๋ฐ๋ผ ์ณ์ฃผ์. ๊ทธ๋ฌ๋ฉด ์ด์ python 2.7์ด ์ค์น๋์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ๋ง ํ๋ค๊ณ ์ ์ฉ๋๋ ๊ฑด ์๋๋ค. python2๋ฅผ ์ฌ์ฉํ๊ณ ์๋ workflow๋ก ๊ฐ์ python ์คํ ์์น๋ฅผ ์ง์ ํด์ฃผ์ด์ผ ํ๋ค.
์ ์๋ณด์ด๋๋ฐ ์ด๋ ๊ฒ ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค.
# From
python filename.py "{query}"
# To
${HOME}/.pyenv/versions/2.7.18/bin/python filename.py "{query}"
์ด๋ ๊ฒ ํด๋ ์๋๋ ๋ ์์ด ์์๋ค.. (Pows)
๋คํํ migration์ ํด์ค ์ฉ์๋์ด ๊ณ์ จ๋ค. ๋กํ!
์๋๋ค.. ๊ทธ๋์ ๊ทธ๋ฅ python2๋ก ์๋ํด๋ณธ ๊ฒฐ๊ณผ
Traceback (most recent call last):
File "/Users/user/Library/Application Support/Alfred/Alfred.alfredpreferences/workflows/user.workflow.C9F20046-9639-4B9A-B500-C54916D16E75/workflow/workflow.py", line 2070, in run
self.check_update()
File "/Users/user/Library/Application Support/Alfred/Alfred.alfredpreferences/workflows/user.workflow.C9F20046-9639-4B9A-B500-C54916D16E75/workflow/workflow.py", line 2340, in check_update
run_in_background('__workflow_update_check', cmd)
File "/Users/user/Library/Application Support/Alfred/Alfred.alfredpreferences/workflows/user.workflow.C9F20046-9639-4B9A-B500-C54916D16E75/workflow/background.py", line 235, in run_in_background
retcode = subprocess.call(cmd)
File "/Users/user/.pyenv/versions/2.7.18/lib/python2.7/subprocess.py", line 172, in call
return Popen(*popenargs, **kwargs).wait()
File "/Users/user/.pyenv/versions/2.7.18/lib/python2.7/subprocess.py", line 394, in __init__
errread, errwrite)
File "/Users/user/.pyenv/versions/2.7.18/lib/python2.7/subprocess.py", line 1047, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
??? ์ด๊ฑด ๋ ๋ญ์ผ. ์ ๋ณด๋ subprocess.py๊ฐ ์กด์ฌํ์ง ์๋๋ค๊ณ ํ๋ค. OSError: [Errno 2] No such file or directory while using python subprocess in Django ํด๋น ๊ธ์ ๋ณด๋ ํจ์ ํธ์ถ์ด ์๋ชป ๋ ๊ฒ ๊ฐ๋ค.
์ค์ ๋ก ์๋ฌ ๋ก๊ทธ๋ณด๋ retcode = subprocess.call(cmd)
์ด๋ถ๋ถ ์ค๋ช
๊ณผ ๊ฐ์๋ค.
๊ทธ๋์ ํด๋น ๊ฒฝ๋ก๋ก ๊ฐ์ ๋ฐ๊ฟ์คฌ๋ค.
# From
retcode = subprocess.call(crop)
# To
retcode = subprocess.call(crop, shell=True)
๊ทธ๋ฆฌ๊ณ python 2๋ก ๋ช ๋ น์ด๋ฅผ ๋ฐ๊ฟ์ฃผ๋ ๋๋ค!
๋ง๋ฌด๋ฆฌ
ํ, ๊ฐ์๊ธฐ ์๋์ ํ์์ด ์ฌ๋ผ๋ฒ๋ ธ๋ค. ์ด์ Script์ง์ ์๋ํ ๋ง๋ค์ด๋ฌ์ผ ๋๋ค..? ๊ท์ฐฎ๋ค. ๋!