12. ê°ì íê²½ ë° í¨í¤ì§Â¶
12.1. ìê°Â¶
íì´ì¬ ìì© íë¡ê·¸ë¨ì ì¢ ì¢ íì¤ ë¼ì´ë¸ë¬ë¦¬ì ì¼ë¶ë¡ ì ê³µëì§ ìë í¨í¤ì§ì 모ëì ì¬ì©í©ëë¤. ìì© íë¡ê·¸ë¨ì í¹ì ë²ì ì ë¼ì´ë¸ë¬ë¦¬ê° íìí ì ìëë°, ìì© íë¡ê·¸ë¨ì í¹ì ë²ê·¸ê° ìì ë ë²ì ì´ íìíê±°ë, ë¼ì´ë¸ë¬ë¦¬ ì¸í°íì´ì¤ì 구ì ë²ì ì ì¬ì©íì¬ ìì© íë¡ê·¸ë¨ì ìì±í ìë ì기 ë문ì ëë¤.
ì¦, íëì íì´ì¬ ì¤ì¹ê° 모ë ìì© íë¡ê·¸ë¨ì ì구 ì¬íì 충족ìí¤ë ê²ì´ ë¶ê°ë¥í ìë ììµëë¤. ìì© íë¡ê·¸ë¨ Aì í¹ì 모ëì ë²ì 1.0ì´ íìíì§ë§, ìì© íë¡ê·¸ë¨ Bì ë²ì 2.0ì´ íìí ê²½ì°, ì구 ì¬íì´ ì¶©ëíê³ , ë²ì 1.0 ëë 2.0ì ì¤ì¹íë©´ ì´ë í ìì© íë¡ê·¸ë¨ì ì¤íí ì ìê² ë©ëë¤.
ì´ ë¬¸ì ì ëí í´ê²°ì± ì ê°ì íê²½ ì ë§ëë ê²ì ëë¤. ì´ ê°ì íê²½ì í¹ì ë²ì íì´ì¬ ì¤ì¹ì ì¬ë¬ ì¶ê° í¨í¤ì§ë¥¼ í¬í¨íë ìë¹ë ëë í°ë¦¬ í¸ë¦¬ì ëë¤.
ìë¡ ë¤ë¥¸ ìì© íë¡ê·¸ë¨ì ìë¡ ë¤ë¥¸ ê°ì íê²½ì ì¬ì©í ì ììµëë¤. ìì 본 ìì¶©íë ì구 ì¬íì ì를 í´ê²°í기 ìí´, ìì© íë¡ê·¸ë¨ Aìë ë²ì 1.0ì´ ì¤ì¹ë ìì²´ ê°ì íê²½ì´ ìê³ , ìì© íë¡ê·¸ë¨ Bìë ë²ì 2.0ì´ ìë ë¤ë¥¸ ê°ì íê²½ì´ ìì ì ììµëë¤. ìì© íë¡ê·¸ë¨ Bìì ë¼ì´ë¸ë¬ë¦¬ë¥¼ ë²ì 3.0ì¼ë¡ ì ê·¸ë ì´ëí´ì¼ íë ê²½ì°, ìì© íë¡ê·¸ë¨ Aì íê²½ì ìí¥ì 미ì¹ì§ ììµëë¤.
12.2. ê°ì íê²½ ë§ë¤ê¸°Â¶
ê°ì íê²½ì ë§ë¤ê³ ê´ë¦¬íë ë° ì¬ì©ëë 모ëì venv ë¼ê³ í©ëë¤. venv ë ëª
ë ¹ì´ ì¤íë (--version ìµì
ì¼ë¡ íì¸í ì ìë) íì´ì¬ ë²ì ì ì¤ì¹í©ëë¤. ì를 ë¤ì´, python3.12ë¡ ëª
ë ¹ì ì¤ííë©´ ë²ì 3.12ê° ì¤ì¹ë©ëë¤.
ê°ì íê²½ì ë§ë¤ë ¤ë©´, ìíë ëë í°ë¦¬ë¥¼ ê²°ì íê³ , venv 모ëì ì¤í¬ë¦½í¸ë¡ ì¤ííëë° ëë í°ë¦¬ ê²½ë¡ë¥¼ ëª
ë ¹í ì¸ìë¡ ì ë¬í©ëë¤:
python -m venv tutorial-env
ì¡´ì¬íì§ ìëë¤ë©´ tutorial-env ëë í°ë¦¬ë¥¼ ë§ë¤ê³ , ê·¸ ìì íì´ì¬ ì¸í°í리í°ì ì¬ë³¸ê³¼ ë¤ìí ì§ì íì¼ì´ ë¤ì´ìë ëë í°ë¦¬ë¤ì ë§ëëë¤.
ê°ì íê²½ì ì¼ë°ì ì¸ ëë í°ë¦¬ ìì¹ë .venvì
ëë¤. ì´ ì´ë¦ì ëë í°ë¦¬ê° ë³´íµ ì
¸ìì ì¨ê²¨ì ¸ ìëë¡ íë¯ë¡, ëë í°ë¦¬ê° ì¡´ì¬íë ì´ì 를 ì¤ëª
íë ì´ë¦ì ì ê³µíë©´ìë ë°©í´ë°ì§ ììµëë¤. ëí ì¼ë¶ í´ë§(tooling)ì´ ì§ìíë .env íê²½ ë³ì ì ì íì¼ê³¼ì ì¶©ëì ë°©ì§í©ëë¤.
ê°ì íê²½ì ë§ë¤ìì¼ë©´, ê°ì íê²½ì íì±íí ì ììµëë¤.
ìëì°ìì ì´ë ê² ì¤íí©ëë¤:
tutorial-env\Scripts\activate
Unix ëë MacOSìì ì´ë ê² ì¤íí©ëë¤:
source tutorial-env/bin/activate
(ì´ ì¤í¬ë¦½í¸ë bash ì
¸ì ìí´ ìì±ë ê²ì¼ë¡, csh ëë fish ì
¸ì ì¬ì©íë ê²½ì°ìë, ëì activate.csh ì activate.fish ì¤í¬ë¦½í¸ë¥¼ ì¬ì©í´ì¼ í©ëë¤.)
ê°ì íê²½ì íì±ííë©´, ì
¸ì í롬íí¸ê° ë³ê²½ëì´ ì¬ì© ì¤ì¸ ê°ì íê²½ì ë³´ì¬ì£¼ê³ , íê²½ì ìì íì¬ python ì ì¤ííë©´ í¹ì ë²ì ì íì´ì¬ì´ ì¤íëëë¡ í©ëë¤. ì를 ë¤ì´:
$ source ~/envs/tutorial-env/bin/activate
(tutorial-env) $ python
Python 3.5.1 (default, May 6 2016, 10:59:36)
...
>>> import sys
>>> sys.path
['', '/usr/local/lib/python35.zip', ...,
'~/envs/tutorial-env/lib/python3.5/site-packages']
>>>
ê°ì íê²½ì ë¹íì±ííë ¤ë©´, ë¤ìê³¼ ê°ì´ í°ë¯¸ëì ì ë ¥í©ëë¤:
deactivate
.
12.3. pipë¡ í¨í¤ì§ ê´ë¦¬í기¶
pip ë¼ë íë¡ê·¸ë¨ì ì¬ì©íì¬ í¨í¤ì§ë¥¼ ì¤ì¹, ì
ê·¸ë ì´ë ë° ì ê±°í ì ììµëë¤. 기본ì ì¼ë¡ pip ë íì´ì¬ í¨í¤ì§ ìì¸ìì í¨í¤ì§ë¥¼ ì¤ì¹í©ëë¤. ì¹ ë¸ë¼ì°ì ìì íì´ì¬ í¨í¤ì§ ìì¸ì ì´í´ë³¼ ì ììµëë¤.
pip ë âinstallâ, âuninstallâ, âfreezeâ ë± ë§ì ë¶ì ëª
ë ¹ì ê°ê³ ììµëë¤. (pip ì ëí ìì í 문ìë íì´ì¬ 모ë ì¤ì¹í기 ì§ì¹¨ì ë³´ë©´ ë©ëë¤.)
í¨í¤ì§ ì´ë¦ì ì§ì íì¬ ìµì ë²ì ì í¨í¤ì§ë¥¼ ì¤ì¹í ì ììµëë¤:
(tutorial-env) $ python -m pip install novas
Collecting novas
Downloading novas-3.1.1.3.tar.gz (136kB)
Installing collected packages: novas
Running setup.py install for novas
Successfully installed novas-3.1.1.3
í¨í¤ì§ ì´ë¦ ë¤ì == ê³¼ ë²ì ë²í¸ë¥¼ ë¶ì¬ í¹ì ë²ì ì í¨í¤ì§ë¥¼ ì¤ì¹í ìë ììµëë¤:
(tutorial-env) $ python -m pip install requests==2.6.0
Collecting requests==2.6.0
Using cached requests-2.6.0-py2.py3-none-any.whl
Installing collected packages: requests
Successfully installed requests-2.6.0
ì´ ëª
ë ¹ì ë¤ì ì¤ííë©´, pip ë ìì²í ë²ì ì´ ì´ë¯¸ ì¤ì¹ëì´ ììì ìë¦¬ê³ , ì무ê²ë íì§ ììµëë¤. ë¤ë¥¸ ë²ì ë²í¸ë¥¼ ì§ì í´ì ê·¸ ë²ì ì ì»ê±°ë python -m pip install --upgrade 를 ì¤ííì¬ í¨í¤ì§ë¥¼ ìµì ë²ì ì¼ë¡ ì
ê·¸ë ì´ëí ì ììµëë¤:
(tutorial-env) $ python -m pip install --upgrade requests
Collecting requests
Installing collected packages: requests
Found existing installation: requests 2.6.0
Uninstalling requests-2.6.0:
Successfully uninstalled requests-2.6.0
Successfully installed requests-2.7.0
python -m pip uninstall ë¤ìì íë ì´ìì í¨í¤ì§ ì´ë¦ì´ ì¤ë©´ ê°ì íê²½ìì í¨í¤ì§ê° ì ê±°ë©ëë¤.
python -m pip show ë í¹ì í¨í¤ì§ì ëí ì 보를 íìí©ëë¤:
(tutorial-env) $ python -m pip show requests
---
Metadata-Version: 2.0
Name: requests
Version: 2.7.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.com
License: Apache 2.0
Location: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages
Requires:
python -m pip list ë ê°ì íê²½ì ì¤ì¹ë 모ë í¨í¤ì§ë¥¼ íìí©ëë¤:
(tutorial-env) $ python -m pip list
novas (3.1.1.3)
numpy (1.9.2)
pip (7.0.3)
requests (2.7.0)
setuptools (16.0)
python -m pip freeze ë ì¤ì¹ë í¨í¤ì§ì ë¹ì·í 목ë¡ì ë§ë¤ì§ë§, python -m pip install ì´ ê¸°ëíë íìì ì¬ì©í©ëë¤. ì¼ë°ì ì¸ ê·ì¹ì ì´ ëª©ë¡ì requirements.txt íì¼ì ë£ë ê²ì
ëë¤:
(tutorial-env) $ python -m pip freeze > requirements.txt
(tutorial-env) $ cat requirements.txt
novas==3.1.1.3
numpy==1.9.2
requests==2.7.0
requirements.txt ë ë²ì ì ì´ì 커ë°ëì´ ìì© íë¡ê·¸ë¨ ì¼ë¶ë¡ ì ê³µë ì ììµëë¤. ì¬ì©ìë install -r ë¡ ëª¨ë íìí í¨í¤ì§ë¥¼ ì¤ì¹í ì ììµëë¤:
(tutorial-env) $ python -m pip install -r requirements.txt
Collecting novas==3.1.1.3 (from -r requirements.txt (line 1))
...
Collecting numpy==1.9.2 (from -r requirements.txt (line 2))
...
Collecting requests==2.7.0 (from -r requirements.txt (line 3))
...
Installing collected packages: novas, numpy, requests
Running setup.py install for novas
Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0
pip ìë ë ë§ì ìµì
ì´ ììµëë¤. pip ì ëí ìì í 문ìë íì´ì¬ 모ë ì¤ì¹í기 ì§ì¹¨ì ì°¸ê³ íì¸ì. í¨í¤ì§ë¥¼ ìì±íì ë íì´ì¬ í¨í¤ì§ ìì¸ìì ì¬ì©í ì ìê² íë ¤ë©´, Python packaging user guide를 ì°¸ê³ íì¸ì.