Перейти к содержанию

Виртуальные окружения. Python + VS Code. Взгляд дилетанта

Еще одна тема, которая периодически будет появляться на страницах этого сайта, — это тема, связанная с программированием. Дело в том, что я уже много лет пытаюсь встать на путь исполнения своей мечты, а именно научиться программировать, а точнее решать полезные задачи, используя языки программирования и связанные с этим инструменты.

Не знаю, насколько меня хватит в этот раз, но все предыдущие попытки закончились ничем. Это немного другая история, но к ней я обязательно вернусь. В любом случае, я ничего не теряю, попытка не пытка!

Сегодня я хочу рассказать о том, как я искал решение проблемы, с которой столкнулся в ходе обучения программированию на языке Python.

Кратко о проблеме: не получалось добавить новую библиотеку (пакет), в моем случае — requests в редакторе кода Visual Studio Code.

Скажу честно, после многократных попыток подключить нужную библиотеку у меня ничего не получилось. Я выключил компьютер и пошел с семьей на прогулку.

После того, как я вечером вновь сел за компьютер, все заработало. Я менял разные папки. Даже удалил VS Code, подчистил после него мусор и установил все заново. Но ошибка не повторилась.

Библиотека requests подключалась нормально, а подготовленный код запускался.

Мне пока сложно дать оценку происходящему, но проблема была скорее в том, что на глобальном уровне VS Code почему-то не видел установленные в интерпретаторе пакеты.

При стандартном методе добавления библиотеки import requests имя библиотеки редактор подчеркивал, а при запуске кода в terminal выводилась следующая ошибка:

Traceback (most recent call last):

File «d:\BKS.Lab\python\PythonTest\hello.py», line 1, in <module>

import requests

ModuleNotFoundError: No module named ‘requests’

Таким образом, не смотря на то, что данная библиотека установлена на глобальном уровне, так как в PyCharm я ее легко добавляю, и она работает, но VS Code ее не хочет видеть.

А что на это говорит Google?

А Google говорит, что лучше всего создавать виртуальное окружение в той папке, в которой идет работа, и уже туда устанавливать необходимые библиотеки. На первый взгляд все просто, но не для меня, новичка.

Как я понял, основной задачей виртуального окружения является создание изолированного пространства, за пределы которого разработка не выходит. Это позволяет использовать разные версии сторонних библиотек и пакетов на одном компьютере и работать с ними из одного редактора.

Создание виртуального окружения

В интернете я нашел следующие команды, которые следует вводить в командной строке.

python3 -m venv –help #команда используется для проверки наличия пакета venv. В последних версиях интерпретатора пакет venv уже установлен, поэтому дополнительно ставить его не требуется.

python -m venv env_bksTest #создание виртуальной среды. В моем случае будет создана папка с именем env_bksTest. В этой папке устанавливается копия интерпретатора, а также стандартные библиотеки.

Ниже представлен скриншот содержания папки env_bksTest.

Содержимое папки виртуального окружения
Содержимое папки виртуального окружения

Пишут, что еще нужна команда для активации виртуальной среды, но у меня она с первого раза не сработала: env_bksTest\scripts\activate

В результате обработки запроса получил вот такую ошибку:

PS D:\BKS.Lab\python\dev_test> env_bksTest\scripts\activate

env_bksTest\scripts\activate: Невозможно загрузить файл D:\BKS.Lab\python\dev_test\env_bksTest\scripts\Activate.ps1, так как выполнение сценариев отключено в этой системе.

Для получения дополнительных сведений см. about_Execution_Policies по адресу https:/go.microsoft.com/fwlink/?LinkID=135170.

строка:1 знак:1

+ env_bksTest\scripts\activate

+ CategoryInfo: Ошибка безопасности: (:) [], PSSecurityException

+ FullyQualifiedErrorId: UnauthorizedAccess

Для того чтобы исправить ошибку, необходимо:

  • от  имени администратора запустить Power Shell;
  • ввести команду Set-ExecutionPolicy RemoteSigned;
  • для ответа нажать клавишу [A];
  • вновь ввести команду в Terminal env_bksTest\scripts\activate

Дальше все просто.

Если нужного пакета в стандартном наборе интерпретатора нет, то его необходимо добавить следующей командой: python -m pip install matplotlib

(matplotlib – имя подключаемой библиотеки)

Давайте подключим еще библиотеку requests:

python -m pip install requests

После того, как работа с виртуальным окружением будет закончена, следует его отключить консольной командой deactivate.

Если вы вновь хотите работать с директорией, в которой установлено виртуальное окружение, не забывайте его активировать.

Уфф… Как это все не просто, но ничего, буду стараться вникать. Еще почитаю про виртуальные окружения и потренируюсь их создавать.

Всем успехов в делах и учебе.

Если есть желание обсудить эту тему или вы нашли ошибки в статье, добро пожаловать в мой Telegram канал, где в комментариях к этой публикации вы можете написать все, что думаете.