virtualenv
을 사용하기 전 우분투의 기본 인터프리터는 python2.7이고 /usr/lib/python3
가 이미 설치되어 있습니다. ipython3
및 requests
$ python Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
일부 호환성 문제로 인해 컴퓨터의 기본 Python 버전은 python2.7만 사용할 수 있으므로 명령을 생성할 때 -p
를 사용하여 인터프리터를 지정해야 합니다
$ ipython3 Python 3.5.2 (default, Nov 17 2016, 17:05:23) Type "copyright", "credits" or "license" for more information. IPython 5.1.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: import requests In [2]:
활성화하려면 가상 환경
$ mkdir my_project_folder; cd my_project_folder # 创建虚拟环境 $ virtualenv -p /usr/bin/python3 venv Running virtualenv with interpreter /usr/bin/python3 Using base prefix '/usr' New python executable in /home/ormsf/my_project_folder/venv/bin/python3 Also creating executable in /home/ormsf/my_project_folder/venv/bin/python Installing setuptools, pkg_resources, pip, wheel...done.
이제 프롬프트 앞에 추가 venv
가 있는 것을 볼 수 있습니다. 이는 가상 환경이 성공적으로 생성되었음을 의미합니다
$ source venv/bin/activate
연습해보세요. 가상환경은 실제환경과 분리되어 있습니다
(venv) ~/my_project_folder $ ipython3
pip3를 사용하지 않아도 됩니다
# 无法使用ipython3 (venv) ~/my_project_folder $ ipython3 Traceback (most recent call last): File "/usr/bin/ipython3", line 4, in <module> from IPython import start_ipython ImportError: No module named 'IPython' # 默认的解释器已经变成了python3 (venv) ~/my_project_folder $ python Python 3.5.2 (default, Nov 17 2016, 17:05:23) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. # 无法使用requests >>> import requests Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named 'requests'
이제 요청을 올바르게 사용할 수 있습니다
(venv) ~/my_project_folder $ pip install requests Collecting requests Downloading requests-2.13.0-py2.py3-none-any.whl (584kB) 100% |████████████████████████████████| 593kB 1.3MB/s Installing collected packages: requests Successfully installed requests-2.13.0
(venv) ~/my_project_folder $ python Python 3.5.2 (default, Nov 17 2016, 17:05:23) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import requests >>>
이제 Ipython도 올바르게 사용할 수 있습니다
(venv) ~/my_project_folder $ pip install ipython
Exit
(venv) ~/my_project_folder $ ipython Python 3.5.2 (default, Nov 17 2016, 17:05:23) Type "copyright", "credits" or "license" for more information. IPython 5.1.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]:
원리는 매우 간단합니다. 즉, virtualenv 환경에 들어가기 위해 virtualenv는 python 및 pip 명령이 현재 virtualenv 환경을 가리키도록 관련 환경 변수를 수정합니다. source venv/bin/activate