Программирование на языке Python
Программирование на языке Python
Модуль
Модуль
Программирование на языке Python
Пакеты
Пакеты
Пакеты
Программирование на языке Python
Классификация модулей
1. Стандартная библиотека Python
1. Стандартная библиотека Python
Примеры модулей/пакетов из Стандартной библиотеки Python:
Примеры модулей/пакетов из Стандартной библиотеки Python:
Примеры модулей/пакетов из Стандартной библиотеки Python:
2. Сторонние модули (англ. 3rd Party Modules)
Примеры популярных пакетов из каталога PyPI.:
Примеры популярных пакетов из каталога PyPI.:
3. Пользовательские (собственные) модули
Программирование на языке Python
Инструкция импорта import
Инструкция импорта import
Инструкция импорта import
Инструкция импорта import
Инструкция импорта import
Инструкция импорта import
Инструкция импорта import
Программирование на языке Python
Инструкция импорта from ... import
Инструкция импорта from ... import
Инструкция импорта from ... import
Инструкция импорта from ... import
Инструкция импорта from ... import
Программирование на языке Python
Относительный и абсолютный импорт
Относительный и абсолютный импорт
Относительный и абсолютный импорт
Относительный и абсолютный импорт
Относительный и абсолютный импорт
Относительный и абсолютный импорт
Относительный и абсолютный импорт
Программирование на языке Python
Виртуальные окружения Python. Модуль venv
Виртуальные окружения Python. Модуль venv
Виртуальные окружения Python
Виртуальные окружения Python. Модуль venv
Виртуальные окружения Python. Модуль venv
Виртуальные окружения Python. Модуль venv
Виртуальные окружения Python. Модуль venv
Директория venv
Директория venv
Директория venv
Директория venv
Директория venv
Директория venv
1.43M
Category: programmingprogramming

Модули и пакеты. Лекция 8

1. Программирование на языке Python

Лекция 8. Модули и пакеты
Заманова С.К.

2. Программирование на языке Python

2
Программирование
на языке Python
Модуль (Module)
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

3.

Программы на Python содержат тысячи, десятки
тысяч и сотни тысяч строк кода (есть проекты с
миллионами). В таких условиях одним файлом с
кодом не обойдёшься — его нужно разбивать на
части. И с целью получения доступа к коду, который
находится в других файлах, в Python реализован
механизм модулей.

4. Модуль

4
Модуль
Module - an object that serves as an organizational unit of
Python code. Modules have a namespace containing arbitrary
Python objects. Modules are loaded into Python by the
process of importing.
Иными словами, модуль(module) в Python - это просто
файл, содержащий код на Python. Каждый модуль может
содержать переменные, классы и функции.
Кроме того, в модуле может находиться исполняемый код.
Имя модуля соответствует имени файла. Например:
# Имя файла
math.py
# Имя модуля
math

5. Модуль

5
Модуль
Каждая программа может импортировать модуль и
получить доступ к его классам, функциям и объектам.
Нужно заметить, что модуль может быть написан не
только на Python (обычные модули), а например, на C или
C++(модули расширения).
Подытожим:
Модуль - это отдельный файл с кодом на Python, который:
Имеет расширение *.py (имя файла без расширения
является именем модуля).
Может быть импортирован.
Может быть многократно использован.
Позволяет вам логически организовать ваш код на Python.

6. Программирование на языке Python

6
Программирование
на языке Python
Пакет (Package)
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

7.

Если начать делить код достаточно большого проекта на
модули, то довольно быстро может возникнуть желание
сгруппировать несколько близких по тематике модулей.
Или же мы захотим вынести часть модулей из проекта,
чтобы их можно было использовать в других проектах.
И тут нам на помощь приходят пакеты (packages) в
Python, которые служат для объединения модулей в
группы.

8. Пакеты

8
Пакеты
Package - a Python module which can contain submodules or
recursively, subpackages.
Пакет - это набор взаимосвязанных модулей (при этом
стоит уточнить, что сам пакет тоже является модулем),
предназначенных для решения задач определенного
класса некоторой предметной области. Это такой способ
структуризации модулей.
Пакет представляет собой папку, в которой содержатся
модули и другие пакеты и обязательный файл __init__.py,
отвечающий за инициализацию пакета.

9. Пакеты

9
Пакеты
На самом деле
Некоторые пакеты Python не содержат файл __init__.py.
Это так называемые namespace packages, которые служат
просто как контейнеры подпакетов.
Однако мы не станем на них подробно останавливаться,
просто будем иметь ввиду, что такие пакеты существуют.
Пример содержимого каталога стандартного пакета json,
который, как можно заметить, состоит из 4 модулей и
файла __init__.py:
json/
├── __init__.py
├── decoder.py
├── encoder.py
├── scanner.py
└── tool.py

10. Пакеты

10
Пакеты
Подытожим:
Пакет - это каталог с модулями, другими пакетами и
файлом __init__.py. При этом:
1. Именем пакета является название данного каталога.
2. С версии Python 3.3 любая папка (даже
без __init__.py) считается пакетом.
3. Пакет может быть импортирован (так же как и модуль).
4. Пакет может быть многократно использован (так же
как и модуль).

11. Программирование на языке Python

11
Программирование
на языке Python
Классификация модулей
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

12.

Для удобной и эффективной разработки на Python
создано огромное количество модулей и пакетов. Их все
можно разделить на 3 группы в зависимости от того, кем
создается и где хранится код конкретного модуля:
Стандартная библиотека Python (англ. Standard
Library).
Сторонние модули (англ. 3rd Party Modules)
Пользовательские модули.

13. Классификация модулей

13
Классификация модулей

14. 1. Стандартная библиотека Python

14
1. Стандартная библиотека Python
Стандартная библиотека Python является очень обширной
и включает в себя два типа модулей:
1. Встроенные модули. Входят в состав интерпретатора
и написаны на языке С, что позволяет им обеспечивать
эффективный доступ к функциональности на уровне ОС например, к системе ввода-вывода данных. Многие из
встроенных модулей являются платформозависимыми.
Например, модуль winreg, предназначенный для работы с
реестром ОС Windows, устанавливается только на
соответствующей ОС.

15. 1. Стандартная библиотека Python

15
1. Стандартная библиотека Python
2. Модули расширения. Написаны на Python.
Представляют собой стандартные способы решения
наиболее часто встречающихся задач программирования.
Сюда входят модули для работы со многими сетевыми
протоколами и форматами интернета, регулярными
выражениями, текстовыми кодировками,
мультимедийными форматами, криптографическими
протоколами, архивами, а также для сериализации
данных, поддержки юнит-тестирования и др.

16. Примеры модулей/пакетов из Стандартной библиотеки Python:

16
Примеры модулей/пакетов из Стандартной библиотеки Python:
Библиот
ека
Описание
sys
Обеспечивает доступ к некоторым переменным и
функциям, взаимодействующим с интерпретатором
Python, например - доступ к аргументам командной
строки, списку встроенных модулей Python, текущим
исключениям, информации об операционной системе.
os
Предоставляет множество функций для работы с
операционной системой. Например, получение версии и
другой информации о текущей ОС, работа с
переменными окружения и файловой системой.
os.path
Является вложенным в модуль os (по сути os является
пакетом), и реализует некоторые полезные функции для
работы с файлами - доступ к характеристикам файла и
манипуляции с путями.

17. Примеры модулей/пакетов из Стандартной библиотеки Python:

17
Примеры модулей/пакетов из Стандартной библиотеки Python:
Библиотека
Описание
time,
datetime
Данные модули предоставляют классы для обработки
времени и даты разными способами.
random
Предоставляет функции для генерации случайных чисел,
букв, случайного выбора элементов последовательности.
collections
Предоставляет специализированные типы данных - счетчики,
очереди, упорядоченные словари.
son
Позволяет кодировать и декодировать данные в формате
JSON.

18. Примеры модулей/пакетов из Стандартной библиотеки Python:

18
Примеры модулей/пакетов из Стандартной библиотеки Python:
Библиотека
Описание
unittest
Предоставляет богатый набор инструментов для написания и
запуска автоматизированных тестов.
re
Модуль re используется для работы с регулярными
выражениями.
hashlib
Предназначен для шифрования строк.
bz2, gzip,
tarfile,
zipfile
Данные модули созданы для архивации/распаковки данных в
разных форматах.

19. 2. Сторонние модули (англ. 3rd Party Modules)

19
2. Сторонние модули (англ. 3rd Party Modules)
Это модули и пакеты, которые не входят в дистрибутив
Python и могут быть установлены из каталога пакетов
Python с помощью пакетного менеджера
(например, pip или easy_install).
PyPI (Python Package Index) - главный каталог библиотек
на Python. Содержит более 200 000 пакетов.

20. Примеры популярных пакетов из каталога PyPI.:

20
Примеры популярных пакетов из каталога PyPI.:
Библиотека
Описание
six
Библиотека совместимости Python 2 и 3. Содержит
функции, сглаживающие различия в версиях Python.
urllib3
HTTP клиент для Python
requests
HTTP клиент для Python. Технически является более
удобной оберткой над urllib3.
python-dateutil
Расширяет функционал по работе со временем и датой
относительно модуля datetime из Стандартной библиотеки
Python.
docutils
Библиотека-процессор для документов написанных с
помощью разметки ReST.

21. Примеры популярных пакетов из каталога PyPI.:

21
Примеры популярных пакетов из каталога PyPI.:
Библиотека
Описание
pyyaml
YAML парсер/генератор
awscli
Предоставляет интерфейс командной строки для
Amazon Web Services
numpy
Пакет для вычислений с многомерными массивами. Его
можно рассматривать как свободную альтернативу
MATLAB.
pytest
Библиотека для создания и запуска автоматизированных
unit тестов (альтернатива unittest)
flask
Фреймворк для создания веб-приложений на Python

22. 3. Пользовательские (собственные) модули

22
3. Пользовательские (собственные) модули
Python предоставляет возможность создания собственных
модулей.
Для создания таких модулей нет особенных правил любой файл с расширением *.py является модулем, а
создается, как правило, разработчиком для собственных
нужд.
В подавляющем большинстве случае такой пакет или
модуль не размещается в каталоге пакетов Python.

23. Программирование на языке Python

23
Программирование
на языке Python
Инструкция импорта import
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

24. Инструкция импорта import

24
Инструкция импорта import

25. Инструкция импорта import

25
Инструкция импорта import
Чтобы воспользоваться функционалом модуля или пакета,
необходимо его импортировать внутрь вашей программы.
При импорте интерпретатор сначала ищет встроенный модуль с заданным именем. Если такого модуля нет,
то идёт поиск файла <имя_модуля>.py в списке директорий, определённых в переменной sys.path.
Переменная sys.path (атрибут path модуля sys) – это
список строк, которые указывают пути поиска для
модулей. При инициализации данный список включает:
рабочую директорию скрипта (основного модуля);
переменную окружения PYTHONPATH и пути инсталляции
Python
Если модуль не удается найти, возбуждается
исключение ImportError.

26. Инструкция импорта import

26
Инструкция импорта import
Посмотреть данный список можно следующим образом:
Python - интерактивный режим
>>> import sys
>>> sys.path
['','/usr/local/Cellar/python/3.7.5/Frameworks/ Python.
framework/Versions/3.7/lib/python37.zip', '/usr/local/Cellar/
python/3.7.5/ Frameworks/Python.framework /Versions/3.7/
lib/python3.7', '/usr/local/Cellar/python/3.7.5/ Frameworks/
Python.framework/Versions/3.7/lib/python3.7/lib-dynload',
'/usr/local/lib/python3.7 /site-packages']

27. Инструкция импорта import

27
Инструкция импорта import
При импорте модуля Python выполняет весь код в нём, а
при импорте пакета Python выполняет код в файле пакета
__init__.py, если такой имеется. Все объекты,
определённые в модуле или __init__.py, становятся
доступны импортирующему. Теперь рассмотрим процесс
импорта с помощью инструкции import. Синтаксис данной
команды выглядит следующим образом:
import <модуль/пакет_1> [ as <псевдоним_1> ] [,
<модуль/пакет_2> as <псевдоним_2>] ...
После ключевого слова import указывается название
модуля. Одной инструкцией можно подключить несколько
модулей, хотя этого не рекомендуется делать, так как это
снижает читаемость кода. Правильным тоном считается
располагать новый импорт на новой строке.

28. Инструкция импорта import

28
Инструкция импорта import
После импортирования модуля его название становится
переменной, через которую можно получить доступ к
атрибутам модуля. Если название модуля слишком длинное, или оно вам не нравится по каким-то другим причинам, то для него можно создать псевдоним с помощью
ключевого слова as. При использовании псевдонима
доступ ко всем атрибутам модуля осуществляется только
с помощью переменной-псевдонима, а переменной с
оригинальным именем модуля в этой программе уже не
будет (если, конечно, вы после этого не напишете import
<модуль>, тогда модуль будет доступен как под именемпсевдонимом, так и под оригинальным именем).
Далее рассмотрим несколько примеров:

29. Инструкция импорта import

29
Инструкция импорта import
Терминал - интерактивный режим
# Импортируем модули time и random
>>> import time
>>> import random
# Получаем текущее время в секундах в формате Unix
time через модуль time и одноименную функцию time()
>>> time.time()
1573500409.296088
# Генерируем рандомное число в диапазоне [0, 1) через
модуль random и функцию random()
>>> random.random()
0.17151933176087286

30. Инструкция импорта import

30
Инструкция импорта import
# Импортируем модуль os с псевдонимом linux_os
>>> import os as linux_os
# Вызываем функцию getcwd() для получения текущей
директории, обращаемся через псевдоним
>>> linux_os.getcwd()
'/usr/local/Cellar/'
# Импортируем модуль math с псевдонимом m и
обратимся к числу e
>>> import math as m
>>> m.e
2.718281828459045

31. Программирование на языке Python

31
Программирование
на языке Python
Инструкция импорта
from … import
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

32. Инструкция импорта from ... import

32
Инструкция импорта from ... import
Инструкция from...import чаще всего используется для
частичного импорта.
Синтаксис данной команды:
from <модуль/пакет> import <атрибут/модуль_1> [ as
<псевдоним_1> ], [<атрибут/модуль_2> [ as
<псевдоним_2> ] ...]
Как мы видим, для длинных имен также можно назначить
псевдоним, указав его после ключевого слова as.
В каких ситуациях необходим частичный импорт?
Нужно импортировать только один или несколько модулей
из пакета.
Нужно импортировать только один или несколько
атрибутов (функций или классов) из модуля.
Приведем примеры использования в каждом из этих
случаев:

33. Инструкция импорта from ... import

33
Инструкция импорта from ... import
1. Импорт одного или нескольких модулей из пакета
В качестве примера снова обратимся в пакету из Стандартной библиотеки - json. Импортируем не весь пакет, а
только несколько модулей:
Python - интерактивный режим
# Импортируем модуль encoder из пакета json
>>> from json import encoder
# Импортируем модуль encoder из пакета json и даем ему
псевдоним
>>> from json import encoder as enc
# Импортируем модули encoder и decoder из пакета json и
даем им псевдонимы
>>> from json import encoder as en, decoder as dec

34. Инструкция импорта from ... import

34
Инструкция импорта from ... import

35. Инструкция импорта from ... import

35
Инструкция импорта from ... import
2. Импорт одного или нескольких атрибутов из модуля
Для примера импортируем несколько атрибутов из стандартного модуля math:
Python - интерактивный режим
# Импортируем число e из модуля math
>>> from math import e
>>> e
2.718281828459045
# Импортируем функцию cos() из модуля math
>>> from math import cos
>>> math.cos(0)
1.0

36. Инструкция импорта from ... import

36
Инструкция импорта from ... import
# Импортируем число Пи из модуля math и дадим ему
псевдоним
>>> from math import pi as number_pi
>>> number_pi
3.141592653589793
Также существует еще одни формат инструкции from - так
называемый Wildcard импорт. Он позволяет подключить
все (точнее, почти все) переменные из модуля. Синтаксис:
Синтаксис
from <модуль/пакет> import *
Однако, PEP8 использовать его не рекомендует, потому
что в случае такого типа импорта становится не всегда
понятно, какие имена доступны в текущем пространстве
имен. Это создает сложности как для людей, которые
читают код, так и для автоматизированных систем,
работающих с таким кодом.

37. Программирование на языке Python

37
Программирование
на языке Python
Относительный и
абсолютный импорт
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

38. Относительный и абсолютный импорт

38
Относительный и абсолютный импорт
Относительный и абсолютный импорт
При работе с пакетами может возникнуть ситуация, когда
необходимо импортировать подпакет или модуль из
другого каталога - соседнего или на уровень выше/ниже.
Чтобы интерпретатор Python понял, где искать, ему нужно
указать правильный путь в дереве каталогов к
модулю/пакету, который вы собираетесь импортировать. В
Python данный путь (как и сам импорт) может быть двух
видов:
1. Абсолютный
2. Относительный
Далее поговорим о каждом из них более подробно.

39. Относительный и абсолютный импорт

39
Относительный и абсолютный импорт
1. Абсолютный импорт
При абсолютном импорте используется полный путь к желаемому (импортируемому) модулю. Полный путь к модулю
- это путь от корневой папки проекта. Формат абсолютного
пути: <пакет_1>.<пакет_2>.<пакет_n>.<модуль/пакет>
Например, если рассмотреть проект со следующей
структурой:
Пример проекта на Python
projectfruits
├── citrus
├── __init__.py
├── grapefruit.py
├── lemon.py
└── orange.py
├── apple.py
└── banana.py

40. Относительный и абсолютный импорт

40
Относительный и абсолютный импорт
То абсолютные пути модулей проекта будут выглядеть
следующим образом:
Абсолютные пути проекта на Python
citrus.grapefruit
citrus.lemon
citrus.orange
apple
banana
Идем дальше. При абсолютном импорте одинаково могут
использоваться обе выше рассмотренные инструкции:
1. import <полный_путь>
2. from <полный_путь> import <объект_импорта>
И рассмотрим несколько примеров:

41. Относительный и абсолютный импорт

41
Относительный и абсолютный импорт
Python
# Импортируем модуль apple в модуль lemon
import apple
# Импортируем функцию baz из модуля apple в модуль
lemon
from apple import baz
# Импортируем модуль lemon в модуль apple двумя
равнозначными способами
import citrus.lemon
from citrus import lemon
# Импортируем функцию foo из модуля lemon в модуль
apple
from citrus.lemon import foo

42. Относительный и абсолютный импорт

42
Относительный и абсолютный импорт

43. Относительный и абсолютный импорт

43
Относительный и абсолютный импорт
2. Относительный импорт
Как несложно будет догадаться, при относительном виде
импорта используются относительные пути к импортируемому файлу. Относительный путь показывает, на сколько
директорий вверх необходимо подняться. Формат
относительного пути:
.<модуль/пакет>
Количество точек в начале указывает, как необходимо
перемещаться по директориям пакета.
Одна точка . означает, что пакет/модуль лежит в текущей
директории. Две точки .. говорят о том, что необходимо
подняться на уровень выше и так далее.

44. Относительный и абсолютный импорт

44
Относительный и абсолютный импорт
При относительном импорте(в отличие от абсолютного)
может использоваться только вторая инструкция:
from <относительный путь> import <объект_импорта>
И в завершение пара примеров:
Python
# Импортируем модуль lemon в модуль orange(находятся в
одном пакете citrus)
from . import lemon
# Импортируем функцию foo из модуля lemon в модуль
orange(находятся в одном пакете citrus)
from .lemon import foo

45. Программирование на языке Python

45
Программирование
на языке Python
Виртуальные окружения
Python. Модуль venv.
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

46. Виртуальные окружения Python. Модуль venv

46
Виртуальные окружения Python. Модуль venv
При создании приложений на Python могут возникнуть
несколько проблем, которые связаны с использованием
библиотек разных версий. Например:
1. Разные проекты используют одни и те же библиотеки, но
при этом версии библиотек отличаются.
2. Возможна ситуация, когда для корректной работы
приложения необходимо зафиксировать версию одной из
библиотек-зависимостей. Очевидно, что в данной ситуации
пользоваться глобальным хранилищем библиотек будет
неуместным, так как это может повлечь за собой цепочку
проблем.
3. У приложения может не быть доступа к каталогу
глобального хранилища пакетов.

47. Виртуальные окружения Python. Модуль venv

47
Виртуальные окружения Python. Модуль venv
Для решения вышеперечисленных задач используется
подход, основанный на построении виртуальных
окружений Python – своего рода песочниц, внутри которых
изолированно запускается приложение со своими
библиотеками.
При этом если данное приложение обновляет и изменяет
данные библиотеки, это никак не затрагивает другие
приложения с такими же библиотеками-зависимостями.
Таким образом, виртуальное окружение в Python — способ
изолировать зависимости (пакеты) для определённого
проекта.

48. Виртуальные окружения Python

48
Виртуальные окружения Python

49. Виртуальные окружения Python. Модуль venv

49
Виртуальные окружения Python. Модуль venv
Каков алгоритм работы с виртуальным пространством?
1. Создать ВП
2. Активировать ВП
3. Внести изменения(например, установить новый модуль)
4. Деактивировать ВП
1. Как создать виртуальное окружение?
Существует достаточно много модулей, которые позволяют
создавать виртуальные окружения в Python. Некоторые уже
входят в стандартную библиотеку(venv), другие необходимо
установить из каталога PyPI(virtualenv, pyenv).

50. Виртуальные окружения Python. Модуль venv

50
Виртуальные окружения Python. Модуль venv
Создать виртуальную среду с помощью выбранной утилиты
можно по-разному, в зависимости от того, где вы работаете
с кодом:
1. Можно создать виртуальное окружение в консоли.
Например, в случае стандартного модуля venv это будет
выглядеть следующим образом: python3 -m venv
/path/to/new/virtual/environment
2. Если вы работаете с IDE(например, PyCharm) при
создании проекта необходимо выбрать соответствующую
опцию по созданию виртуального пространства. Обратите
внимание, что в зависимости от уже установленных
библиотек, в выпадающем списке могут быть доступны
несколько вариантов модулей, создающих виртуальные
среды:

51. Виртуальные окружения Python. Модуль venv

51
Виртуальные окружения Python. Модуль venv

52. Виртуальные окружения Python. Модуль venv

52
Виртуальные окружения Python. Модуль venv
В результате создается директория с говорящим названием
venv, которая содержит все файлы, необходимые для
поддержания и корректного функционирования
свежесозданной виртуальной среды. Содержимое данного
каталога на Linux выглядит приблизительно так:

53. Директория venv

53
Директория venv
├── bin
│ ├── activate
│ ├── activate.csh
│ ├── activate.fish
│ ├── easy_install
│ ├── easy_install-3.5
│ ├── pip
│ ├── pip3
│ ├── pip3.8
│ ├── python -> python3.8
│ ├── python3 -> python3.8
│ └── python3.8 ->
/Library/Frameworks/Python.framework/Ve
rsions/3.8/bin/python3.8
├── include
├── lib
│ └── python3.8

└── site-packages
└── pyvenv.cfg

54. Директория venv

54
Директория venv
В ОС Windows структура директории venv выглядит схожим
образом.
Что находится в этих директориях?
bin – файлы, обеспечивающие взаимодействие с
виртуальной средой;
include – С-заголовки, компилирующие пакеты Python;
lib – копия глобальной версии Python вместе с папкой sitepackages, в которой установлены библиотеки для общего
пространства
2. Как активировать виртуальную среду?
Итак, вы создали виртуальное пространство для вашего
проекта и хотите им воспользоваться. Для этого
необходимо его активировать. Процесс активации среды
немного различается в зависимости от типа операционной
системы:

55. Директория venv

55
Директория venv
Консоль
# Для Linux
# Используем команду source и передаем ей скрипт activate
из папки bin
$ source my_project/venv/bin/activate
# Для Windows
# Запускаем bat-файл activate.bat
> D:\home\python\project\env\Scripts\activate.bat

56. Директория venv

56
Директория venv
3. Работа внутри виртуальной среды
Теперь с помощью одного из менеджеров пакетов(pip или
easy_install) можно просматривать/устанавливать/изменять/
удалять пакеты. Несколько примеров с использованием
менеджера pip:
Консоль
# Список установленных библиотек
$ pip3 list
Package
Version
------------------ -------certifi
2019.3.9
pip
19.3.1
pytest
5.4.2
requests
2.22.0
selenium
3.141.0
setuptools
41.6.0

57. Директория venv

57
Директория venv
six
urllib3
1.12.0
1.25.2
# Установка библиотеки requests
$ pip3 install requests
# Удаление библиотеки six
$ pip3 uninstall six
4. Как деактивировать виртуальную среду?
После того, как вы завершили работу с текущей средой,
необходимо ее деактивировать. Процесс так же немного
отличается на разных типах ОС:

58. Директория venv

58
Директория venv
Консоль
# Для Linux
# В рамках текущей сессии вызываем команду deactivate
(venv) $ deactivate
# Для Windows
# Запускаем bat-файл deactivate.bat
> D:\home\python\project\env\Scripts\deactivate.bat
English     Русский Rules