Ubuntu 18.04์์ pipenv๋ฅผ ์ค์นํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ ๊ฒํ๋ฉด pip / pip3์ด ์ค๋จ๋ฉ๋๋ค.
pipenv์ ์ค์น ๋ฐ ์๋ ๋ฒ์ .
pip ๋๋ pip3์ ํตํด pipenv๋ฅผ ์ค์นํ๋ ค๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ pip/pip3์ด ์์๋ฉ๋๋ค.
โ pip
Traceback (most recent call last):
File "/usr/bin/pip", line 9, in <module>
from pip import main
ImportError: cannot import name main
pip install pipenv
๋๋ pip3 install pipenv
pip
๋๋ pip3
โ ์ค๋ฅ๊ฐ ์ธ์๋๊ณ pip / pip3์ด ๋ ์ด์ ์๋ํ์ง ์์ต๋๋ค.๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์์ ์คํํด์ผ ํฉ๋๋ค.
sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
ํ์ง๋ง pip๋ฅผ ์ฌ์ฉํ์ฌ pipenv๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ PPA๊ฐ ์๊ธฐ ๋๋ฌธ์ apt
๋ฅผ ํตํ ์ค์น๊ฐ ์๋ํ์ง ์์ต๋๋ค.
์๋ ์๋ฃจ์ ์ ์ฐธ์กฐํ์ญ์์ค. ๋น์ ์ ๊ฐ์ง ํ์๊ฐ
export PATH="${HOME}/.local/bin:$PATH"
์ ธ ๊ตฌ์ฑ์์. ๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด ์๋ํ์ง ์์ต๋๋ค.
๋ค์์ pip3์ ์ถ๋ ฅ์ ๋๋ค.
werner in ~ at octopus23
โ pip3 install pipenv
Collecting pipenv
Using cached https://files.pythonhosted.org/packages/2c/01/37a5867a47d52856b077d0faa561b791cb6e6e3e9410837b6d62f569c1e6/pipenv-11.10.1-py3-none-any.whl
Collecting virtualenv (from pipenv)
Using cached https://files.pythonhosted.org/packages/ed/ea/e20b5cbebf45d3096e8138ab74eda139595d827677f38e9dd543e6015bdf/virtualenv-15.2.0-py2.py3-none-any.whl
Collecting pip>=9.0.1 (from pipenv)
Using cached https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl
Collecting setuptools>=36.2.1 (from pipenv)
Using cached https://files.pythonhosted.org/packages/8c/10/79282747f9169f21c053c562a0baa21815a8c7879be97abd930dbcf862e8/setuptools-39.1.0-py2.py3-none-any.whl
Collecting virtualenv-clone>=0.2.5 (from pipenv)
Using cached https://files.pythonhosted.org/packages/6d/c2/dccb5ccf599e0c5d1eea6acbd058af7a71384f9740179db67a9182a24798/virtualenv_clone-0.3.0-py2.py3-none-any.whl
Collecting certifi (from pipenv)
Using cached https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975fc916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl
Installing collected packages: virtualenv, pip, setuptools, virtualenv-clone, certifi, pipenv
Successfully installed certifi-2018.4.16 pip-10.0.1 pipenv-11.10.1 setuptools-39.1.0 virtualenv-15.2.0 virtualenv-clone-0.3.0
๋๋ ์ด๊ฒ์ด pip์ ๋ฐ๋ฅธ Pipenv์ ๊ฒฐ๊ณผ์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง Pipenv๊ฐ ์ด์ ๋ํ ์ฑ ์์ด ์๋์ง ํ์คํ์ง ์์ต๋๋ค. ์๋ง๋ ๋ฐ๋น์์ Python-pip ์ปคํ๋ง์ ๊นจ๋จ๋ ธ๊ธฐ ๋๋ฌธ์ ๊ทธ๋์ผ ํ ๊ฒ์ ๋๋ค. Pipenv๋ ํ์คํ pip์ ์์กดํ๋ ์ ์ผํ ํจํค์ง๋ ์๋์ง๋ง ์ฌ๊ธฐ์์ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@ncoghlan ์ด ์ฃผ์ ์ ๋ํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ ์ ์์ต๋๊น? ๊ตฌ์ฒด์ ์ผ๋ก ํน๋ณํ
์ด์จ๋ ์ฐ๋ถํฌ์์๋ ์ ๋ sudo pip install
ํด์๋ ์ ๋ฉ๋๋ค. ๋์ ๋ค์ ์ค ํ๋๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
pip install --user
๋๋ ๋ ๋์ ๋ฐฉ๋ฒ์ผ๋ก ์์คํ
Python์ ์์ ํ ํผํ๊ณ pyenv ๋๋ ๋ค๋ฅธ Python ๋ฐํ์ ๊ด๋ฆฌ์๋ฅผ ๋์ ์ฌ์ฉํ์ญ์์ค.
๊ทธ๊ฒ๋ค์ ๊ธ์ด๋ผ. APT์์ Python์ ํผํ์ญ์์ค.
์ด์จ๋ ์ฐ๋ถํฌ์ ์๋ฌด ๊ฒ๋ sudo pip ์ค์นํด์๋ ์ ๋ฉ๋๋ค.
๋๋ ์ค์ ๋ก ํ ์ ์ด ์์ต๋๋ค. ์ฐ๋ถํฌ์์ sudo pip
์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฌธ์ ์ ์ ์๊ณ ์์ผ๋ฏ๋ก ๊ฐ๋ฅํ๋ฉด apt
ํ๊ฑฐ๋ --user
๊ณ ์ํฉ๋๋ค.
์ ์ด์ ๋ฌธ์ ๊ฐ ๋ณด์
๋๋ค. ์ฌ์ฉ์ ๋ชจ๋์ ์์คํ
๋ค๋ณด๋ค ์ฐ์ ํ์ง๋ง, /usr/bin
์์์๋ $HOME/.local/bin
๋น์ ์ PATH
. /usr/bin/python
์์คํ
pip ์ค์น(์ฌ์ ํ 9.x์)๋ฅผ ๊ฐ์ ธ์ค๋ ค๊ณ ์๋ํ์ง๋ง ๊ฒฐ๊ตญ ์ฌ์ฉ์ ์ค์น(10.x์)๋ฅผ ์ฐพ์์ต๋๋ค. ์๋ง์ด์ผ.
PATH
์ ์์กดํ๋ ๊ฒ๋ณด๋ค ๋ ๊ฐ๋ ฅํ ์๋ฃจ์
์ด ์์ด์ผ ํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ด์ด๋๊ณ ์ถ์ต๋๋ค.์ฌ์ฉ์๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๋งค์ฐ ์์ ์ ์ ๋๋ค.
ห/.local/bin
์ฌ์ฉ์์ PATH
. 16.10 ์ดํ Ubuntu์์๋ ๊ธฐ๋ณธ๊ฐ์ด์ด์ผ ํฉ๋๋ค. ์๋ฒฝํ๊ฒ ์ ํจํ ์ฌ์ฉ ์ฌ๋ก์ธ pip install --user
๋์์ ๊ฐ๋ฅํ๊ฒ ํ๋ฏ๋ก ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.pip install --user
์ฌ์ฉํด์ผ ํฉ๋๋ค. ์์คํ
์ pip๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ชจ๋ ๋ฐฐํฌํ์์ ์ ๋ง ์ข์ง ์์ต๋๋ค. ๋ฐ๋น์ ์ ์ด์ํ "dist-packages/site-packages" ํด๋์กฐ์ฐจ๋ ์ฌ์ฉ์์ ์ค์๋ก๋ถํฐ ๋ณดํธํ์ง ๋ชปํฉ๋๋ค.์ฐ๋ฆฌ๋ ๋ชจ๋ ์ฐ๋ถํฌ ์ฌ์ฉ์ ์ค์น(๋ค์ํ ์ฐ๋ถํฌ ๋ฒ์ ์ 1000๊ฐ ์ด์์ ์ค์น ์กฐ์ง)์์ ์ด ๋์์ ๋ณด์ฅํ์ผ๋ฉฐ pip10์ผ๋ก์ ์ ํ์ ๋งค๋ ฅ์ฒ๋ผ ์๋ํ์ต๋๋ค.
๋๋ ํ์ด์ฌ๊ณผ ๊ทธ ์ํ๊ณ๊ฐ ๋ณต์กํ๊ณ ์ฌ๋๋ค์ด ๊ฒ์ ์์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ํ๊ธฐ ์ํด ๊ฒฝ๋ก๋ฅผ ์ ์ ํ๊ฒ ๊ตฌ์ฑํ์ง ์์๋ ๋๋ค๋ฉด ๋ ์ข์ ๊ฒ์ด๋ผ๋ ๋ฐ ๋์ํ์ง๋ง, ์ด๊ฒ์ ๋ถํํ๋ ํ์ฌ ํจํค์ง ๊ด๋ฆฌ์์์ ์ค์น๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ํ ์ฌ์ค์ผ ๋ฟ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๊ทธ ์์ฒด๋ก pipenv ๋ฌธ์ ๊ฐ ์๋๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ ๋ฆฝ์ ์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ์ผ์ด ๋ง์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ด์ฌ ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์์ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๊ฐ ๋ ๋ง์ต๋๋ค.
์, ์ด์ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๊ฒฝ๋ก๊ฐ ์ด๊ฒ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค๊ณ ์๊ฐํ ์ ์ด ์์ต๋๋ค. ๊ทธ๋์ ๋ฌธ์ ์ค๋ช ์ ๊ฒฝ๋ก๋ฅผ ํฌํจํ ์๊ฐ์ ํ์ง ์์์ต๋๋ค. ์ฃ์กํฉ๋๋ค. ๋์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋๋ฅผ ์ํด ๊ณ ์น ๊ฒ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์์ต๋๋ค.
export PATH="${HOME}/.local/bin:$PATH"
ํ๋กํ์.
ํธ์ง: ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ค๋ฉด hash -r
๋ฅผ ์คํํ๊ฑฐ๋ ์ ์
ธ์ ์
๋ ฅํด์ผ ํฉ๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ ๋ฆฝ์ ์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ํด ํ ์ ์๋ ์ผ์ด ๋ณ๋ก ์๋ค๊ณ ์๊ฐํฉ๋๋ค
์ข ๋ ์์ธํ ์ค์น ์ง์นจ์ด๋ ์ฃผ์ ์ฌํญ์ด ์์ ์ ์์ต๋๊น? ๋๋ pip ์๋ ๋ฐฉ์์ ๋ํด ๊ฒฝํ์ด ๋ง์ง ์์ง๋ง ๊ฒฝ๋ก ๋ฌธ์ ์ ๋ํ ๋ฉ๋ชจ๋ฅผ ์ฝ์์ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ค๋ฅธ ํจํค์ง ๊ด๋ฆฌ์์ ๋ฐฐํฌํ์ ์ํ๊ณ๋ ๋จ์ํ ๊ท์น์ ๋นํด ๋๋ฌด ๋ณต์กํ๋ค๊ณ ์๊ฐํฉ๋๋คโฆ
@slhck ๋ฉฐ์น ์ ์ python ํ๊ฒฝ๊ณผ sudo ๋ฐ ํจํค์ง ๊ด๋ฆฌ์ ์ค์น์ ๊ดํ ์ด xkcd ๊ฐ ์๋ค๋ ์ฌ์ค์ด ์ค์ ๋ก ๋๋ฌด ์ค๋ง ์ค๋ฝ ์ต๋๋ค.
๋ค์์ Ubuntu 18.04์์ ์ฑ๊ณต์ ์ผ๋ก ์ฌ์ฉํ ๋จ๊ณ๋ณ ๊ฐ์ด๋์
๋๋ค.
https://phoikoi.io/2018/04/03/bootstrap-pipenv-debian.html
๋ํ https://github.com/pypa/python-packaging-user-guide/issues/396 ๋ PATH
/ sys.path
์์ ์ถฉ๋์ ๊ฐ๋ฅ์ฑ์ ๋ํด ๋ฉ๋ชจํด ๋๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค, @slhck . ๋ด๋ณด๋ด๊ธฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฅ ๋ง์ ์๊ฐ์ ์ ์ฝํ ์ ์์์ต๋๋ค. /etc/profile์ ์ถ๊ฐํ์ต๋๋ค.
Linux์ 2๊ฐ์ง ์์ค์ ์ํํธ์จ์ด ํจํค์ง์ด ์๋ค๋ ๊ฒ์ ์ ๋ง ์ด๋ฆฌ์์ ์ผ์ ๋๋ค. ๋ ๋์ ๊ฒ์ *buntus์ ์ต์ ๋ฆด๋ฆฌ์ค์์ ๋ ์ค ํ๋(pip/pip3)์ ๋ ๊ฐ์ง ๋ง์ด ๊นจ์ก์ต๋๋ค.
๋๋ Launchpad์ ๊ทธ๊ฒ์ ์ผ์ต๋๋ค: https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1772746
@texadactyl Debian์๋ pip๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋์ด์๋ ์ ๋๋ค๋ ์ด ์ ์ฑ (์ด๊ฒ์ด ๋ฌด์์ธ์ง ์์ด๋ฒ๋ ธ์ต๋๋ค)์ด ์์ผ๋ฉฐ, ์ด์ ์ ๋ง์ ๋ถ๋ง๊ณผ ํจ๊ป ์ด๋ฅผ ๊ณ ์ํ์ต๋๋ค. ์ด ์ ํต์ ๋ฐ๋น์์ ๋ฟ๋ฆฌ์ ๊น์ด ๋ฟ๋ฆฌ๋ฅผ ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ด ์ด๊ฒ์ ๋ค์ ์๊ฐํ ์ ์๋ค๋ฉด ๋๋ ๊ธฐ์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค์ด ๊ทธ๋ ๊ฒ ํ ์ง๋ ๋งค์ฐ ์์ฌ์ค๋ฝ์ต๋๋ค.
Ubuntu 18 ๋ฐ Python 3.6์์ ๋์ผํ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค.
๋ค์์ ๋ด๊ฐ ์ํํ ๋จ๊ณ์ ๋๋ค.
1) ๋จผ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "/usr/bin/pip", 9ํ,
pip import ๋ฉ์ธ์์
ImportError: main ์ด๋ฆ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
2) /user/bin/pip ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํ์ต๋๋ค.
์์
์์คํ
pip._internal์์ _main์ผ๋ก ๊ธฐ๋ณธ ๊ฐ์ ธ์ค๊ธฐ
__name__ == '__main__'์ธ ๊ฒฝ์ฐ:
sys.exit(๋ฉ์ธ())
3) ๊ทธ๋ฐ ๋ค์์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค.
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "/usr/bin/pip3", 11ํ,
sys.exit(๋ฉ์ธ())
NameError: 'main' ์ด๋ฆ์ด ์ ์๋์ง ์์์ต๋๋ค.
4) /usr/bin/pip3์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํ์ต๋๋ค.
์์
์์คํ
pip._internal์์ _main์ผ๋ก ๊ธฐ๋ณธ ๊ฐ์ ธ์ค๊ธฐ
__name__ == '__main__'์ธ ๊ฒฝ์ฐ:
sys.exit(_main())
5) ๊ทธ๋ฐ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค.
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "/usr/bin/pip3", 11ํ,
sys.exit(๋ฉ์ธ())
NameError: 'main' ์ด๋ฆ์ด ์ ์๋์ง ์์์ต๋๋ค.
6) ๋๋ main()์ _main()์ผ๋ก ์ด๋ฆ์ ๋ฐ๊ฟจ๊ณ , ์ง์ .. ์๋ํ์ต๋๋ค!!! :) :)
๊ทธ๊ฒ์ด ๋น์ ์ ์ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ ์๋ ์์ง๋ง ์ด๊ฒ์ ์์ฃผ ๋์ ์กฐ์ธ์ ๋๋ค. ์์คํ ํ์ผ์ ์๋์ผ๋ก ์์ ํ๋ฉด ์ ๋ฉ๋๋ค. ์๋ฃจ์ ์ ๋ํ ๋ด ์ด์ ์๊ฒฌ์ ์ดํด๋ณด์ญ์์ค.
ํธ์ง : @slhck ์ ์๋ฃจ์
์ด ํด๊ฒฐํ์ต๋๋ค. ๊ฒฝ๋ก์ ~/.local/bin
์ด ์์ด์ผ ํฉ๋๋ค.
์ฐ๋ถํฌ 16.04์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
$ sudo apt install python3-pip
$ pip3 --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
$ python3 -m pip install --user pipenv
$ pip3 --version
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
# revert back and fix pip
$ sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
๋๋ ์ด ๋ฌธ์ ๋ ์ฐ์ฐํ ๋ฐ๊ฒฌํ๋ค๊ณ ๋ง๋ถ์ด๊ณ ์ถ์ต๋๋ค. ๋ด ๊ฒฝ๋ก์ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ผ๋ก ์ด๋ฏธ ~/.local/bin์ด ์์ต๋๋ค. ๋ฌธ์ ๋ bash๊ฐ ๋ช ๋ น์ ํด์ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ https://github.com/pypa/pip/issues/5221#issuecomment -381568428์์ ์ฐพ์ ์ ์์ต๋๋ค.
@thernstig ๋ค, ๋ง์ต๋๋ค. ์์ ์๋ฃจ์
์ ํ์ํ hash -r
๋ช
๋ น์ ์ถ๊ฐํ์ง๋ง ๋ช
์์ ์ผ๋ก ์ธ๊ธํ๋ ๊ฒ์ ์์์ต๋๋ค.
@slhck ๋ฌธ์ ์์ต๋๋ค. ๋์๋๋ฆด ์ ์์ด์ ๊ธฐ์ฉ๋๋ค.
๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ง๋ง ์ด๊ฒ์ด PATH์ ๋ํ ์์ ์ ํผํ๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๋ง์์ผ๋ก ๊ฒ์ํฉ๋๋ค. ๋๋ ์ค๋ ์๋ก์ด Ubuntu 18.04 ์์คํ ์ ์ค์ ํ ๋ ์ด๊ฒ์ ์คํํ๊ณ ์ฌ๋ถํ ์ ํ์ง๋ง PATH ์์ ์์ด ํด๊ฒฐํ ์ ์์์ต๋๋ค(๋ก๊ทธ์์/๋ก๊ทธ์ธ์ด ์๋ํ๋ค๊ณ ํ์ ํ์ง๋ง ํ์ธํ์ง ์์์ต๋๋ค).
python3-pip
๋ฅผ ํตํด pip3๋ฅผ ์ค์นํ๊ณ pip3 install --user pipenv
pipenv๋ฅผ ์ค์นํ ํ ์ ๋ชฉ ์ค๋ฅ๋ฅผ ๋ฐ์์ต๋๋ค. ~/.profile
(์ฃผ์, ์์ ์ฌํญ ์์)์์ ๋ค์์ ๋ฐ๊ฒฌํ์ ๋ @slhck ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ค๊ณ ํ์ต๋๋ค.
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
ํฅ๋ฏธ๋กญ๊ฒ๋ ์ฌ๋ถํ
ํ๋๋ฐ ํ์คํ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. .local/bin
๊ฐ ์ด์ PATH ์์ ๋ถ๋ถ์ ์๊ณ pip3์ด ๋ค์ ์๋ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
@jlitzingerdev ๊ฒฝ๋ก๊ฐ ๊ธฐ๋ณธ๊ฐ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ๋ค๋ฅธ ์ ธ๊ณผ ํ๋กํ์ ์ฌ์ฉํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ์ฒ์๋ถํฐ ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ ๋ด ์์คํ ์ ๋ํ
@slhck ํ์ง๋ง ~/.local/bin
๊ฐ ์กด์ฌํ์ง ์๊ฑฐ๋ ๋ด ํน์ ํ ๊ฒฝ์ฐ์๊ธฐ ๋๋ฌธ์ ์ฒซ ๋ฒ์งธ ๋ก๊ทธ์ธ ์ PATH์ ์์ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ญํด์ผ ํ์ฃ ?
๋ณต์ ๋ช ๋ น์ ํฌํจ์์ผ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. pip๋ฅผ ๋ค์ ์๋์ํค๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
Ubuntu 18.04์์ pipenv๋ฅผ ์ค์นํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ ๊ฒํ๋ฉด pip / pip3์ด ์ค๋จ๋ฉ๋๋ค.
์์ ๊ฒฐ๊ณผ
pipenv์ ์ค์น ๋ฐ ์๋ ๋ฒ์ .
์ค์ ๊ฒฐ๊ณผ
pip ๋๋ pip3์ ํตํด pipenv๋ฅผ ์ค์นํ๋ ค๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ pip/pip3์ด ์์๋ฉ๋๋ค.
โ pip Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main
๋ณต์ ๋จ๊ณ
1. Set up Ubuntu 18.04 2. Run `pip install pipenv` or `pip3 install pipenv` 3. Run `pip` or `pip3` โ the error is printed, and pip / pip3 do not work anymore.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์์ ์คํํด์ผ ํฉ๋๋ค.
sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
ํ์ง๋ง pip๋ฅผ ์ฌ์ฉํ์ฌ pipenv๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ PPA๊ฐ ์๊ธฐ ๋๋ฌธ์
apt
๋ฅผ ํตํ ์ค์น๊ฐ ์๋ํ์ง ์์ต๋๋ค..
๋ด ์ฐ๋ถํฌ 18 pip, pip3 ๋ฐ pip3.6์ 3๊ฐ์ pip๊ฐ ์์ต๋๋ค. pip๋ 2.7์ฉ์ ๋๋ค. pip3์ 3.5์ฉ์ด๊ณ pip3.6์ 3.6์ฉ์ ๋๋ค. ์ด์ pip๋ ํ์ผ ์์น๋ฅผ .local/bin ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์์ pip ๋ฐ pip3 ํ์ผ์ ์ ๊ฑฐํ์ต๋๋ค. ์ด์ ์ด๋ pip3์ด /usr/bin/pip3์ ๋ณด์ฌ์ค๋๋ค. sudo nano /usr/bin/pip3 ๋ช ๋ น์ ์คํํ์ฌ ์ธํฐํ๋ฆฌํฐ์ ์ฒซ ๋ฒ์งธ ์ค์ !#/usr/bin/python3 ์ผ๋ก #/usr/bin/python3.5๋ก ๋ณ๊ฒฝํฉ๋๋ค. ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค. ๋ด ๋ชจ๋ ํ์ด ์๋ํฉ๋๋ค. ์ด๊ฒ ๋์์ด ๋๊ธธ ๋ฐ๋๋ค
๋ด ์ฐ๋ถํฌ 18 pip, pip3 ๋ฐ pip3.6์ 3๊ฐ์ pip๊ฐ ์์ต๋๋ค. pip๋ 2.7์ฉ์ ๋๋ค. pip3์ 3.5์ฉ์ด๊ณ pip3.6์ 3.6์ฉ์ ๋๋ค. ์ด์ pip๋ ํ์ผ ์์น๋ฅผ .local/bin ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์์ pip ๋ฐ pip3 ํ์ผ์ ์ ๊ฑฐํ์ต๋๋ค. ์ด์ ์ด๋ pip3์ด /usr/bin/pip3์ ๋ณด์ฌ์ค๋๋ค. sudo nano /usr/bin/pip3 ๋ช ๋ น์ ์คํํ์ฌ ์ธํฐํ๋ฆฌํฐ์ ์ฒซ ๋ฒ์งธ ์ค์ !#/usr/bin/python3 ์ผ๋ก #/usr/bin/python3.5๋ก ๋ณ๊ฒฝํฉ๋๋ค. ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค. ๋ด ๋ชจ๋ ํ์ด ์๋ํฉ๋๋ค. ์ด๊ฒ ๋์์ด ๋๊ธธ ๋ฐ๋๋ค
์ด ๋ชจ๋ ๋จ๊ณ๋ ์ค์ ๋ก ๊ถ์ฅ๋์ง ์์ต๋๋ค. /usr/bin
ํ์ผ์ ์๋์ผ๋ก ํธ์งํ๋ฉด ์ ๋ฉ๋๋ค. ๋์ ์์์ ์ธ๊ธํ ๋๋ก pip๋ฅผ ์ ๊ฑฐํ๊ณ apt
๋ฅผ ํตํด ๋ค์ ์ค์นํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ๋ฐ๋ฅธ ์์คํ
์ค์น๋ฅผ ์ป์ ์ ์์ต๋๋ค. pipenv
์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฌํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ํ๊ธฐ๋ณด๋ค ์ ๋ฌธ์ ๋ฅผ ์ด๊ณ ๋ฌธ์ ๋ฅผ ์ค๋ช
ํ์ญ์์ค.
์์์ ์ธ๊ธํ ๋๋ก apt๋ฅผ ํตํด ๋ค์ ์ค์นํด๋ ๋์ผํ ์ถ๋ ฅ์ด ์์ฑ๋๋ฏ๋ก ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๊ฐ๋จํ ์ํ๋ ์ด๋ฆ์ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฉฐ ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ์์ ๊ฐ์ ธ์ค๊ธฐ pip๋ฅผ ์ํํ ๋ ๋ชจ๋๋ก ๊ฐ์ ธ์ต๋๋ค. ์ด๋ ๋ฉ์ธ ์ด๋ฆ์ด ๋ณด๋ ค๋ ๋ชจ๋์์ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ด์ ๋๋ ๋งน๋ชฉ์ ์ผ๋ก ์์ ํธ์ง์ ์ ์ํ์ง ์์์ต๋๋ค. ubuntu14์ ์์ ๋ ์ํํธ์จ์ด ์ ํธ๊ฐ๋ก์ pip ํ์ผ์ ํ์ธํ๋๋ฐ ubuntu18 pip3์ ์๋ ๊ฒ๊ณผ ๋์ผํ ์ฝ๋๊ฐ ์์ต๋๋ค. ๊ทธ๋์ ๋ณ๊ฒฝ๋ ๊ฒ. ๋ฏธ๋ฆฌ ํจํค์ง๋ก ์ ๊ณต๋๋ Python ๋ฒ์ ์ด ๊ทธ๋ฌ์ต๋๋ค.
python3.5 ๋ฐ 2.7์ฉ pip๋ pip ๋ชจ๋์ main๋ง ์ ์๋์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ python3.6์๋ pip._internal์ ์ ์๋์ด ์์ต๋๋ค.
์ด์ ์์ ๋ ๋ฌธ์ฅ์ด ๋ชจ๋ ์ฌ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
๋ฌธ์ ๋ ์์ ์ด ์ฌ์ฉํ๋ ์ธํฐํ๋ฆฌํฐ์ ์์ต๋๋ค.
ํ์ด์ฌ3; ๊ทธ๋ฌ๋ ์ด๋ค ํ์ด์ฌ์ ์ฐธ์กฐํ๊ณ ์์ต๋๊น?
python 2.7๋ง ์๊ณ ubuntu18๋ก ๋ณ๊ฒฝ๋ ๊ฐ๋ฐ์๋ python 3์ python3.6์ผ๋ก ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
๊ทธ๋ฌ๋ python3.4 pr 3.5๊ฐ ์ค์น๋ ์ฌ๋๋ค์ ์ด๋ป์ต๋๊น? ๋จผ์ python3์ python3.5๋ฅผ ์ฐธ์กฐํ๊ณ ์ด์ ์ ๊ทธ๋ ์ด๋ ํ์๋ ppython3.6์ ์ฐธ์กฐํฉ๋๋ค.
๊ทธ๋์ ๋ฐ๋น์์ด ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ๊นจ์ก์ต๋๋ค.
์ฌ๋ฐ๋ฅธ ํต์ญ์ฌ๋ฅผ ๋งํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
๋ ๋ค ์ค๋ฅ๊ฐ ์๋ ๊ฒฝ์ฐ
pip import ๋ฉ์ธ์์
๊ทธ๋ฆฌ๊ณ
pip._internal์์ _main์ผ๋ก ๊ธฐ๋ณธ ๊ฐ์ ธ์ค๊ธฐ
๊ฐ์ฌ ํด์
์ถ์
์ด ์์ ์์ ๋๋ ๋ค๋ฅธ ํ๋ซํผ์์๋ ํ์ง ๋ง์์ผ ํ ๊ฒ์ ๊ฐ์ํ๋ ๊ฒ์ด ๊ด์ฐฎ์ ๊ฒ์ด๋ผ๊ณ ๋งํด์ผ ํ์ง๋ง, ๋ค๋ฅธ ์ด์ ์ ์ธ ๊ฐ๋ฐ์๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ค๋ github์์๋; ํนํ ๊ทธ๋ค์ด ๋ง์ ๋ช
๋ น์ ์คํํ๊ฑฐ๋ ์ผ๋ถ ๊ตฌ์ฑ ํ์ผ์ ํธ์งํ์ฌ ์คํํ๋ ค๊ณ ํ ๋ ์ด๋ฐ ์ฌ๋๋ค์ ๋๋ด์ํค๊ธฐ ์์ํ ์ ๋๋ก ํ๋ช
ํ์ง ๋ง๋ผ๊ณ ๋งํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ : ์ ๋ฒ์ ์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์์ผ๋ฉด ์๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ๊ทธ๊ฒ์ ์ ๊ฑฐํ๊ณ ์ค์นํ๋ ๋ชจ๋ ์ฌ๋์๊ฒ ์๋ํ๋๋ก ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ถ๊ฐํฉ๋๋ค.
์ด ์์ ์์ ๋น์ ์ด ๊ทธ๊ฒ์ ์ป์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ค์๋ ๋๋ฅผ ๊ดด๋กญํ์ง ๋ง
@r-tron18 ์์คํ
ํ์ผ์ ์์ ํ์ง ๋ง๋ผ๋ ๊ฑด์ค์ ์ธ ์ ์์ ํ์ ๊ฒ ๊ฐ์ ์ฃ์กํฉ๋๋ค. ์๋ ๊ฒ์๋ฌผ์์ ์ ๊ณตํ ์ฝ๊ฐ์ ์ปจํ
์คํธ์์๋ ์์ ์ด ํ๋ ์ผ์ ์๊ณ ์๋ ์๋ จ๋ ์ฌ์ฉ์์ธ์ง ์๋๋ฉด ๋ค๋ฅธ ๊ณณ์์ ์ฐพ์ ์ ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ์ฉํ๋์ง ์ ์ ์์์ต๋๋ค. ์ ๋ ๋ค์ํ ๋ฌธ์ ํด๊ฒฐ ๋ฐ Q&A ์น์ฌ์ดํธ์ ๋ง์ ์๊ฐ์ ํ ์ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์์ ์์ ์ ์๋ํ๊ฑฐ๋ sudo
-์์คํ
์ ๊ณต ํ์ผ์ ํธ์งํ๋๋ก ๊ถ์ฅํด์๋ ์ ๋๋ค๋ ๋ฐ ๋์ํ์ค ๊ฒ์
๋๋ค. ์ค๋ฅ์ ํผ๋. ๊ทธ๊ฒ์ ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์
๋๋ค.
๋๋ ์ฌ์ ํ ๋น์ ์ด ์ ์ํ ๊ฒ์ด ์ ๋ขฐํ ์์๋ ์๋ฃจ์ ์ธ์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ : ์ฐ๋ฆฌ๋ ๊ทธ ์๋ฃจ์ ์ ์ฅ์ ์ ๋ํด ์๋ฏผ ํ ๋ก ์ ํ ์ ์์ต๋๋ค. GitHub๋ ์ ๊ฐ ๊ทธ๊ฒ์ ํํํ ์ ์๋ ๊ณณ์ ๋๋ค.
๊ทธ ์ด์ ๋ /usr/bin/pip3
์ shebang์ #!/usr/bin/python3.5
๋ก ๋ณ๊ฒฝํ๋ฉด ํด๋น ๋ฒ์ ๋ง ๊ณ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. #!/usr/bin/python3
์ฝ์ด์ผ ํ๊ณ /usr/bin/python3.6
(๋๋ ์์คํ
์ ํ์ฌ ์๋ ๋ชจ๋ ๊ฒ)์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ์ฌ์ผ ํฉ๋๋ค. ๋ชจ๋ Python ์
๊ทธ๋ ์ด๋๋ ์ด์จ๋ ํด๋น ํ์ผ์ ๋ณ๊ฒฝํฉ๋๋ค.
๋น์ ์ ๋งํ๋ค:
๊ทธ๋ฌ๋ python3.4 pr 3.5๊ฐ ์ค์น๋ ์ฌ๋๋ค์ ์ด๋ป์ต๋๊น? ๋จผ์ python3์ python3.5๋ฅผ ์ฐธ์กฐํ๊ณ ์ด์ ์ ๊ทธ๋ ์ด๋ ํ์๋ ppython3.6์ ์ฐธ์กฐํฉ๋๋ค.
๊ทธ๋์ ๋ฐ๋น์์ด ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ๊นจ์ก์ต๋๋ค.
Python 3.5๋ฅผ Python 3.6์ผ๋ก ์
๊ทธ๋ ์ด๋ํ ํ python3
์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ์
๋ฐ์ดํธ๋์ง ์์๋ค๋ ๋ง์์ด์ ๊ฐ์? ๋น์ ์ด ๊ด์ฐฐํ๊ณ ์๋ ๊ฒ์ด ์ค์ ๋ก Debian ๋๋ Ubuntu์ ๋ฒ๊ทธ๋ผ๋ฉด Python ์
๊ทธ๋ ์ด๋๊ฐ ์ฌ๋ฐ๋ฅธ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ค์ ํ์ง ๋ชปํ ๊ฒฝ์ฐ ํด๋น ๋ฒ๊ทธ๋ ์๋ง๋ ์
์คํธ๋ฆผ์์ ํด๊ฒฐ๋์ด์ผ ํ์ง ์์ต๋๊น?
๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ง๋ง ์ด๊ฒ์ด PATH์ ๋ํ ์์ ์ ํผํ๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๋ง์์ผ๋ก ๊ฒ์ํฉ๋๋ค. ๋๋ ์ค๋ ์๋ก์ด Ubuntu 18.04 ์์คํ ์ ์ค์ ํ ๋ ์ด๊ฒ์ ์คํํ๊ณ ์ฌ๋ถํ ์ ํ์ง๋ง PATH ์์ ์์ด ํด๊ฒฐํ ์ ์์์ต๋๋ค(๋ก๊ทธ์์/๋ก๊ทธ์ธ์ด ์๋ํ๋ค๊ณ ํ์ ํ์ง๋ง ํ์ธํ์ง ์์์ต๋๋ค).
python3-pip
๋ฅผ ํตํด pip3๋ฅผ ์ค์นํ๊ณpip3 install --user pipenv
pipenv๋ฅผ ์ค์นํ ํ ์ ๋ชฉ ์ค๋ฅ๋ฅผ ๋ฐ์์ต๋๋ค.~/.profile
(์ฃผ์, ์์ ์ฌํญ ์์)์์ ๋ค์์ ๋ฐ๊ฒฌํ์ ๋ @slhck ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ค๊ณ ํ์ต๋๋ค.# set PATH so it includes user's private bin if it exists if [ -d "$HOME/.local/bin" ] ; then PATH="$HOME/.local/bin:$PATH" fi
ํฅ๋ฏธ๋กญ๊ฒ๋ ์ฌ๋ถํ ํ๋๋ฐ ํ์คํ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
.local/bin
๊ฐ ์ด์ PATH ์์ ๋ถ๋ถ์ ์๊ณ pip3์ด ๋ค์ ์๋ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฌ๋ถํ ํ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. (์ค์น ํ: "pip3 install --user pipenv" ์์คํ ์ ๋ค์ ์์ํ๋ฉด ์๋ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์, ์ด์ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ๊ฒฝ๋ก๊ฐ ์ด๊ฒ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค๊ณ ์๊ฐํ ์ ์ด ์์ต๋๋ค. ๊ทธ๋์ ๋ฌธ์ ์ค๋ช ์ ๊ฒฝ๋ก๋ฅผ ํฌํจํ ์๊ฐ์ ํ์ง ์์์ต๋๋ค. ์ฃ์กํฉ๋๋ค. ๋์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋๋ฅผ ์ํด ๊ณ ์น ๊ฒ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์์ต๋๋ค.
ํ๋กํ์.
ํธ์ง: ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ค๋ฉด
hash -r
๋ฅผ ์คํํ๊ฑฐ๋ ์ ์ ธ์ ์ ๋ ฅํด์ผ ํฉ๋๋ค.์ข ๋ ์์ธํ ์ค์น ์ง์นจ์ด๋ ์ฃผ์ ์ฌํญ์ด ์์ ์ ์์ต๋๊น? ๋๋ pip ์๋ ๋ฐฉ์์ ๋ํด ๊ฒฝํ์ด ๋ง์ง ์์ง๋ง ๊ฒฝ๋ก ๋ฌธ์ ์ ๋ํ ๋ฉ๋ชจ๋ฅผ ์ฝ์์ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ค๋ฅธ ํจํค์ง ๊ด๋ฆฌ์์ ๋ฐฐํฌํ์ ์ํ๊ณ๋ ๋จ์ํ ๊ท์น์ ๋นํด ๋๋ฌด ๋ณต์กํ๋ค๊ณ ์๊ฐํฉ๋๋คโฆ