148 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Virtual Environments
 | ||
| localeTitle: Виртуальная среда
 | ||
| ---
 | ||
| ## Виртуальные сети
 | ||
| 
 | ||
| Виртуальные среды можно охарактеризовать как изолированные установочные каталоги. Эта изоляция позволяет локализовать установку зависимостей вашего проекта, не заставляя вас устанавливать их в рамках всей системы.
 | ||
| 
 | ||
| Представьте, что у вас есть два приложения App1 и App2. Оба требуют пакет Pak, но с разными версиями. Если вы установите Pak версии 2.3 для App1, вы не сможете запустить App2, потому что для него требуется версия 3.1. Вот когда вам пригодится виртуальная среда.
 | ||
| 
 | ||
| Выгоды:
 | ||
| 
 | ||
| *   Вы можете иметь несколько сред, с несколькими наборами пакетов, без конфликтов между ними. Таким образом, требования разных проектов могут быть выполнены одновременно.
 | ||
| *   Вы можете легко отпустить свой проект со своими зависимыми модулями.
 | ||
| 
 | ||
| Вот два способа создания виртуальных сред Python.
 | ||
| 
 | ||
| ## Virtualenv
 | ||
| 
 | ||
| [`virtualenv`](https://virtualenv.pypa.io/en/stable/) - это инструмент, используемый для создания изолированных сред Python. Он создает папку, содержащую все необходимые исполняемые файлы, для использования пакетов, которые потребуются для проекта Python.
 | ||
| 
 | ||
| Вы можете установить его с помощью `pip` :
 | ||
| ```
 | ||
| pip install virtualenv 
 | ||
| ```
 | ||
| 
 | ||
| Проверьте установку с помощью следующей команды:
 | ||
| ```
 | ||
| virtualenv --version 
 | ||
| ```
 | ||
| 
 | ||
| ### Создание среды
 | ||
| 
 | ||
| Чтобы создать виртуальную среду, используйте:
 | ||
| ```
 | ||
| virtualenv --no-site-packages my-env 
 | ||
| ```
 | ||
| 
 | ||
| Это создает папку в текущем каталоге с именем среды ( `my-env/` ). Эта папка содержит каталоги для установки модулей и исполняемых файлов Python.
 | ||
| 
 | ||
| Вы также можете указать версию Python, с которой хотите работать. Просто используйте аргумент `--python=/path/to/python/version` . Например, `python2.7` :
 | ||
| ```
 | ||
| virtualenv --python=/usr/bin/python2.7 my-env 
 | ||
| ```
 | ||
| 
 | ||
| ### Среда списка
 | ||
| 
 | ||
| Вы можете указать доступные среды:
 | ||
| ```
 | ||
| lsvirtualenv 
 | ||
| ```
 | ||
| 
 | ||
| ### Активировать среду
 | ||
| 
 | ||
| Прежде чем вы сможете начать использовать среду, вам необходимо активировать ее:
 | ||
| ```
 | ||
| source my-env/bin/activate 
 | ||
| ```
 | ||
| 
 | ||
| Это гарантирует, что будут использоваться только пакеты под `my-env/` .
 | ||
| 
 | ||
| Вы заметите, что имя среды отображается слева от подсказки. Таким образом, вы можете видеть, какая из них активна.
 | ||
| 
 | ||
| ### Установить пакеты
 | ||
| 
 | ||
| Вы можете устанавливать пакеты один за другим или устанавливая файл `requirements.txt` для своего проекта.
 | ||
| ```
 | ||
| pip install some-package 
 | ||
|  pip install -r requirements.txt 
 | ||
| ```
 | ||
| 
 | ||
| Если вы хотите создать файл `requirements.txt` из уже установленных пакетов, выполните следующую команду:
 | ||
| ```
 | ||
| pip freeze > requirements.txt 
 | ||
| ```
 | ||
| 
 | ||
| Файл будет содержать список всех пакетов, установленных в текущей среде, и их соответствующие версии. Это поможет вам выпустить свой проект с помощью собственных зависимых модулей.
 | ||
| 
 | ||
| ### Деактивировать среду
 | ||
| 
 | ||
| Если вы закончили работу с виртуальной средой, вы можете деактивировать ее с помощью:
 | ||
| ```
 | ||
| deactivate 
 | ||
| ```
 | ||
| 
 | ||
| Это вернет вас к интерпретатору Python по умолчанию со всеми его установленными библиотеками.
 | ||
| 
 | ||
| ### Удалить среду
 | ||
| 
 | ||
| Просто удалите папку окружения.
 | ||
| 
 | ||
| ## Конда
 | ||
| 
 | ||
| [`Conda`](https://conda.io/docs/index.html) - это пакет, зависимость и управление средой для многих языков, включая Python.
 | ||
| 
 | ||
| Чтобы установить Conda, следуйте этим [инструкциям](https://conda.io/docs/user-guide/install/index.html) .
 | ||
| 
 | ||
| ### Создание среды
 | ||
| 
 | ||
| Чтобы создать виртуальную среду, используйте:
 | ||
| ```
 | ||
| conda create --name my-env 
 | ||
| ```
 | ||
| 
 | ||
| Conda создаст соответствующую папку в каталоге установки Conda.
 | ||
| 
 | ||
| Вы также можете указать, с какой версией Python вы хотите работать:
 | ||
| ```
 | ||
| conda create --name my-env python=3.6 
 | ||
| ```
 | ||
| 
 | ||
| ### Среда списка
 | ||
| 
 | ||
| Вы можете перечислить все доступные среды:
 | ||
| ```
 | ||
| conda info --envs 
 | ||
| ```
 | ||
| 
 | ||
| ### Активировать среду
 | ||
| 
 | ||
| Прежде чем вы сможете начать использовать среду, вам необходимо активировать ее:
 | ||
| ```
 | ||
| source activate my-env 
 | ||
| ```
 | ||
| 
 | ||
| ### Установить пакеты
 | ||
| 
 | ||
| То же, что и с `virtualenv` .
 | ||
| 
 | ||
| ### Деактивировать среду
 | ||
| 
 | ||
| Если вы закончили работу с виртуальной средой, вы можете деактивировать ее с помощью:
 | ||
| ```
 | ||
| source deactivate 
 | ||
| ```
 | ||
| 
 | ||
| ### Удаление среды
 | ||
| 
 | ||
| Если вы хотите удалить среду из Conda, используйте:
 | ||
| ```
 | ||
| conda remove --name my-env 
 | ||
| ```
 | ||
| 
 | ||
| #### Дополнительная информация:
 | ||
| 
 | ||
| *   [Официальный сайт](https://virtualenv.pypa.io/en/stable/) `virtualenv`
 | ||
| *   [Официальный сайт](https://conda.io/docs/index.html) `Conda`
 | ||
| *   `The Hitchhicker's Guide to Python` - [Pypenv & Virtual Environments](http://docs.python-guide.org/en/latest/dev/virtualenvs/) |