Лайфхаки

Маленькие, полезные хитрости

Настройка рабочего окружения на Windows для работы с Python. ПО позволяющее создавать виртуальное окружение

03.08.2023 в 08:27
Содержание
  1. Настройка рабочего окружения на Windows для работы с Python. ПО позволяющее создавать виртуальное окружение
  2. Переменные окружения windows. Способы редактирования и создания
  3. Виртуальное окружение Python vs code. Using Python Virtual Environment in VSCode
  4. Как работает виртуальное окружение. Python. Уро. Виртуальные окружения
  5. Переменные окружения Python. Managing Variables in Different Environments
  6. Как перенести виртуальное окружение Python. 2 ответа
  7. Не создается виртуальное окружение Python. Не создается виртуальное окружение!
  8. Виртуальное окружение Python windows. Что такое venv и virtualenv в Python, и как их использовать

Настройка рабочего окружения на Windows для работы с Python. ПО позволяющее создавать виртуальное окружение

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

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

virtualenv

Это, наверное, одни из самых популярных инструментов, позволяющих создавать виртуальные окружения. Он прост в установке и использовании. В сети довольно много руководств по virtualenv. Этот инструмент нужно обязательно освоить, как минимум, потому что описание развертывания и использования многих систем, созданных с использованием Python, включает в себя процесс создания виртуального окружения с помощью virtualenv.

pyenv

Инструмент для изоляции версий Python. Чаще всего применяется, когда на одной машине вам нужно иметь несколько версий интерпретатора.

virtualenvwrapper

Это обертка дляvirtualenvпозволяющая хранить все изолированные окружения в одном месте, создавать их, копировать и удалять. Предоставляет удобный способ переключения между окружениями и возможность расширять функционал за счет плагинов. Существуют ещё инструменты и плагины, выполняющие работу по изоляции частей системы Python.

venv

Этот модуль появился в Python3 и не может быть использован для решения задачи изоляции в Python2. По своему функционалу очень похож наvirtualenv. Если вы работаете с третьим Python, то можете смело использовать данный инструмент.

poetry,pipenv,pipx..

И это ещё не все, которые также отвечают за виртуальное окружение, с которыми предлагаем ознакомится самим.

Переменные окружения windows. Способы редактирования и создания

Переменные среды в Windows 7, 8, 10 можно легко редактировать самостоятельно. Это делается различными способами – через Свойства компьютера, с помощью командной строки и путем редактирования реестра.

Через Свойства компьютера

Проще всего отредактировать эти значения с помощью графического интерфейса . Для этого следует в Проводнике щелкнуть правой кнопкой мыши по иконке компьютера (« Этот компьютер » в Windows 10, « Мой компьютер » в Windows 7) и выбрать « Свойства ».Переменные окружения windows. Способы редактирования и создания

Далее следует открыть « Дополнительные параметры системы », а в появившемся окне « Свойства системы » — « Переменные среды ».Переменные окружения windows. Способы редактирования и создания

После этого появится окно, позволяющее с помощью удобного графического интерфейса просматривать, добавлять, редактировать и удалять нужные элементы.Переменные окружения windows. Способы редактирования и создания

Интерфейс создания и изменения предельно прост – достаточно указать имя и значения. Предусмотрены диалоги для удобства выбора каталогов и файлов.Переменные окружения windows. Способы редактирования и создания

Через командную строку

Чтобы начать редактирование этим способом, необходимо открыть командную строку в режиме администратора. Для этого необходимо нажать Win+ R , набрать в поле « cmd » и нажать Ctrl+ Shift+ Enter .Переменные окружения windows. Способы редактирования и создания

Для работы с переменными окружениями в командной строке  Windows 7, 8, 10 предусмотрена утилита setx .

Для создания или изменения значения переменной среды пользователя данная утилита имеет следующий синтаксис:

setx new_var hello_world

Здесь new_var – название, a hello_world – значение.

Виртуальное окружение Python vs code. Using Python Virtual Environment in VSCode

When trying to use a Python virtual environment in VSCode, it was not detecting the virtual environment. The solution was very simple, but I couldn’t find it on Google.

Most of the solutions found on StackOverflow and Github were suggesting to change thepythonPathin VSCode settings.

This article shows how to use a Python virtual environment in VSCode, without having to change thepythonPathin VSCode settings.

virtualenvand creating a virtual environment. If you are only interested in the VSCode setup, skip to the VSCode setup section directly.

Install Virtualenv

We will be using virtualenv to create our python virtual environments. We will use pip to install it.

Install virtualenv using pip:

pip install virtualenv

Check your installation:

virtualenv --version

Create a Virtual Environment

First, let us create a folder.virtualenvsin the home directory. This is where we will keep all our virtual environments.

cd ~ mkdir .virtualenvs cd .virtualenvs

From inside the.virtualenvsdirectory, create a new virtual environment usingvirtualenv

virtualenv venv

Now, let us activate the virtual environment

source venv/bin/activate

We will install a package in the virtual environment so that we can test if the setup is working as expected.

pip install excel

We will createtest.pythat will import from theexcelpackage that we just installed.

from excel import OpenExcel

VSCode Setup

At first, if you open thetest.pyfile, assuming you have Python linter extension installed, VSCode will show an error like this.

This is because VSCode is not using the correct python interpreter. There are two ways in which you can fix this.

1. UpdateVenv PathSettings in VSCode

Open VSCode preferences (Ctrl + ,) and search for “venv”. Add~/.virtualenvsto the “Venv Path” settings, like so:

Restart VSCode and click on the interpreter version on the left-bottom corner.

Now, you will be able to see the virtual environment python interpreter in the interpreter list. Select it, now the issue should be resolved.

2. Add the Virtual Environment Folder to VSCode.

Как работает виртуальное окружение. Python. Уро. Виртуальные окружения

Продолжаем серию “ Python .Уроки”. На этот раз мы изучим, что такое виртуальные окружения в Python , зачем они нужны и как их использовать. Познакомимся с инструментами virtualenv и venv для создания виртуальных окружений.

    Что такое виртуальное окружение и зачем оно нужно?

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

    Во-первых : различные приложения могут использовать одну и туже библиотеку, но при этом требуемые версии могут отличаться.

    Во-вторых : может возникнуть необходимость в том, чтобы запретить вносить изменения в приложение на уровне библиотек, т.е. вы установили приложение и хотите, чтобы оно работало независимо от того обновляются у вас библиотеки или нет. Как вы понимаете, если оно будет использовать библиотеки из глобального хранилища ( /usr/lib/pythonXX/site-packages ), то, со временем, могут возникнуть проблемы.

    В-третьих : у вас просто может не быть доступа к каталогу /usr/lib/pythonXX/site-packages .

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

    ПО позволяющее создавать виртуальное окружение в Python

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

    virtualenv

    Это, наверное, одни из самых популярных инструментов, позволяющих создавать виртуальные окружения. Он прост в установке и использовании. В сети довольно много руководств по virtualenv , самые интересные, на наш взгляд, будут собраны в конце урока в разделе “Полезные ссылки”. В общем, этот инструмент нужно обязательно освоить, как минимум, потому что описание развертывания и использования многих систем, созданных с использованием Python , включает в себя процесс создания виртуального окружения с помощью virtualenv .

    pyenv

    Инструмент для изоляции версий Python . Чаще всего применяется, когда на одной машине вам нужно иметь несколько версий интерпретатора для тестирования на них разрабатываемого вами ПО.

    virtualenvwrapper

    Virtualenvwrapper – это обертка для virtualenv позволяющая хранить все изолированные окружения в одном месте, создавать их, копировать и удалять. Предоставляет удобный способ переключения между окружениями и возможность расширять функционал за счет plug-in ’ов.

    Существуют ещё инструменты и plug-in ’ы, выполняющие работу по изоляции частей системы Python , но мы их не будем рассматривать.

    Инструменты, входящие в стандартную библиотеку Python .

    venv

    Этот модуль появился в Python3 и не может быть использован для решения задачи изоляции в Python2 . По своему функционалу очень похож на virtualenv . Если вы работаете с третьим Python , то можете смело использовать данный инструмент.

    virtualenv

    Будем рассматривать работу с virtualenv в рамках операционной системы Linux . Для Windows все будет очень похоже, за исключением моментов, связанных со спецификой этой ОС: названия и расположение каталогов, запуск скриптов оболочки и т.п.

    Установка virtualenv

    Virtualenv можно установить с использованием менеджера pip (ссылка на статью), либо скачать исходные коды проекта и установить приложение вручную.

    Установка с использованием pip.

    Для установки virtualenv откройте консоль и введите следующую команду:

    > pip install virtualenv

    Установка из исходного кода проекта.

    В этом случае, вам нужно будет выполнить чуть большее количество действий.

    Введите в консоли следующий набор команд:

    > curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz > tar xvfz virtualenv-X.X.tar.gz > cd virtualenv-X.X > python setup.py install

    X.X – это версия приложения, ее вам нужно знать заранее.

    Если использовать ключевое слово sudo , инструмент будет установлен глобально, в противном случае – локально.

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

    Виртуальное окружение создается следующей командой:

    > virtualenv PRG1

    PRG1 в данном случае – это имя окружения.

    После выполнения данной команды, в текущем каталоге будет создан новый каталог с именем PRG1 . Разберем более подробно его содержимое.

    RPG1/bin/ – содержит скрипты для активации/деактивации окружения, интерпретатор Python , используемый в рамках данного окружения, менеджер pip и ещё несколько инструментов, обеспечивающих работу с пакетами Python

    PRG1/include/ и PRG1/lib/ – каталоги, содержащие библиотечные файлы окружения. Новые пакеты будут установлены в каталог PRG1/lib/pythonX.X/site-packages/ .

    Переменные окружения Python. Managing Variables in Different Environments

    When working with Python applications, you need to manage environment variables effectively to ensure smooth operation across different environments. In this section, we’ll look into how you can successfully handle variables in development and production environments.

    To start, change the contents of your.envfile to the following:

    And now, let’s go over the best way to load the correct set of variables, depending on your code environment.

    Development and Production Environments

    You can use Python’s built-in

    • If Linux, it’s a production environment
    • Else, it’s a development environment

    Now, I don’t have a Linux machine near me so I’ll do the manipulation withdarwin(macOS) instead.

    Depending on the detected operating system, you’ll know whether the environment variable should start withDEVorPROD. Then, it’s just a matter of using Python’s f-strings to get the correct ones from the.envfile.

    Refer to the following code snippet:

    import platform from dotenv import load_dotenv # Detect platform to set the environment # Load the stored environment variables load_dotenv() # Get the values # Print the values print( f "PASS = db_pass )

    This is the output you should see if you’re running the code on macOS:

    I’ll now set Linux to be the development environment to make sure the conditional statement works. Everything else stays the same:

    import os import platform from dotenv import load_dotenv # Detect platform to set the environment environ = "DEV" if platform . system() . lower() == "linux" else "PROD" # Load the stored environment variables load_dotenv() # Get the values db_user = os . getenv( f environ ) db_pass = os . getenv( environ )

    Here’s what you should see:

    Outputs from these code snippets will depend on your operating system. Feel free to change the conditional logic behindenvironif you’re using Linux or Windows.

    Security and Sensitive Information with Python Dotenv

    When working with version control systems like Git, it’s important to avoid accidentally committing sensitive information. To prevent pushing your.envfile to the repository, add it to a.gitignorefile. This file tells Git which files or directories to ignore when committing changes.

    Create a.gitignorefile in your project’s root directory and include the following line:

    .env

    Here’s what your

    Now the.envfile won’t get pushed to the repository.

    Advanced Python Dotenv

    This section will walk you through a couple of advanced and niche-specific use cases of the Python dotenv package. Let’s start with variable expansions.

    Как перенести виртуальное окружение Python. 2 ответа

    Лучший ответ

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

    Как правило, это плохая идея, поскольку она частично сводит на нет цель создания виртуальной среды. Ваша виртуальная среда будет содержать пакеты, специфичные для платформы и конфигурации машины, на которой она находится - вы могли бы разрабатывать Linux на одной машине и Windows на другой, и у вас были бы большие проблемы, чем просто одна строка в файле конфигурации.

    Что ты должен делать:

    • создать виртуальную среду в папке за пределами вашего проекта / исходной папки.
    • предполагая, что вы используетеpip, вы можете запуститьpip freeze > requirements.txt, чтобы создать папкуrequirements.txt, которую затем можно использовать в другой системе сpip install -r requirements.txtдля воссоздания той же виртуальной среды .

    Все, что вам нужно сделать, это поддерживать этотrequirements.txtв актуальном состоянии и обновлять виртуальные среды на любом компьютере всякий раз, когда он изменяется, вместо того, чтобы загружать его через GitHub.

    Более подробно простой пример (для Windows, очень похож на Linux):

    • создать папку проекта, напримерC:\projects\my_project
    • создать виртуальную среду для проекта, напримерpython -m venv C:\projects\venv\my_project
    • активировать среду, т.е.C:\projects\venv\my_project\Scripts\activate.bat
    • установить пакеты, напримерpip install numpy
    • сохранить, какие пакеты были установлены, в файл вC:\projects\my_project, названныйrequirements.txtсpip freeze > requirements.txt
    • сохранить проект в репозитории Git, включая этот файл
    • на другой машине разработки, клонируйте или вытягивайте проект, напримерgit clone https://github.com/my_project D:\workwork\projects\my_project
    • на этой машине создайте новую виртуальную среду, напримерpython -m venv D:\workwork\venv\my_project
    • активировать среду, т.е.D:\workwork\venv\my_project\Scripts\activate.bat
    • установить необходимые пакеты сpip install -r D:\workwork\projects\my_project\requirements.txt

    Поскольку вы говорите, что используете PyCharm, это все еще намного проще, просто убедитесь, что среда, созданная PyCharm, находится за пределами вашей папки проекта. Мне нравится хранить все мои виртуальные среды в одной папке с именами venv, соответствующими именам проектов.

    Вы по-прежнему можете создатьrequirements.txtв своем проекте, и когда вы перетаскиваете проект на другой компьютер с PyCharm, просто сделайте то же самое: создайте venv вне папки проекта. PyCharm распознает, что в файле требований отсутствуют пакеты, и предложит установить их за вас.

    Не создается виртуальное окружение Python. Не создается виртуальное окружение!

    Всем доброго времени суток!

    После dist-upgrade не могу создать виртуальное окружение python (v2.7.x).

    $ virtualenv test 1 ↵ Running virtualenv with interpreter /usr/local/bin/python2 New python executable in test/bin/python2 Not overwriting existing python script test/bin/python (you must use test/bin/python2) Installing setuptools, pip… Complete output from command /home/djnoob/test/bin/python2 -c "import sys, pip; sys…d\"> + sys.argv))" setuptools pip: Traceback (most recent call last): File "", line 1, in File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/__init__.py", line 60, in File "/usr/share/python-wheels/pip-1.5.6-py2.py3-none-any.whl/pip/util.py", line 18, in File "/home/djnoob/test/lib/python-wheels/distlib-0.1.9-py2.py3-none-any.whl/distlib/version.py", line 14, in File "/home/djnoob/test/lib/python-wheels/distlib-0.1.9-py2.py3-none-any.whl/distlib/compat.py", line 31, in ImportError: cannot import name HTTPSHandler ---------------------------------------- …Installing setuptools, pip…done. Traceback (most recent call last): File "/usr/lib/python3/dist-packages/virtualenv.py", line 2378, in main() File "/usr/lib/python3/dist-packages/virtualenv.py", line 830, in main symlink=options.symlink) File "/usr/lib/python3/dist-packages/virtualenv.py", line 1032, in create_environment install_wheel(to_install, py_executable, search_dirs) File "/usr/lib/python3/dist-packages/virtualenv.py", line 975, in install_wheel 'PIP_NO_INDEX': '1' File "/usr/lib/python3/dist-packages/virtualenv.py", line 917, in call_subprocess % (cmd_desc, proc.returncode)) OSError: Command /home/djnoob/test/bin/python2 -c "import sys, pip; sys…d\"> + sys.argv))" setuptools pip failed with error code 1

    Пробовал гуглить - ничего адекватного. Система debian sid, пакеты python-virtualenv и python-pip стоят.

    Виртуальное окружение Python windows. Что такое venv и virtualenv в Python, и как их использовать

    В этой статье будут показаны установка, настройка, а также проведен полный обзор всех возможностей использования утилит venv и virtualenv для Python . Но начнем мы с рассмотрения общих вопросов.

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

    Чтобы решать подобные проблемы, разработчики придумали интересный способ: запускать каждое приложение со своим набором версий библиотек в изолированных средах. Таким образом, виртуальная среда (virtual environment) в языке Python позволяет управлять проектами изолированно друг от друга, то есть:

    • у каждого проекта могут быть свои зависимости;
    • зависимости одного проекта не влияют на зависимости другого проекта.

    Создавать виртуальное окружение в Python можно при помощи различных утилит. И сегодня мы поговорим про venv и virtualenv .

    Важно: перед началом работы у Вас должен быть установлен Python 3  и pip. Если Вы используете Windows , все следующие команды, кроме тех, где будет альтернативный вариант, выполняются таким же образом, но необходимо заменять pip3 на pip , а python3 на

      Работа с venv

      Чтобы создать виртуальную среду, мы используем модуль venv . Это удобный инструмент для управления зависимостями и изоляции проектов , который выстроен в Python , начиная с версии Python 3.3+ . Поэтому модуль venv нельзя использовать для изоляции программ Python 2 .

      Создание проекта

      Приступим к созданию проекта . Первым делом следует создать папку проекта и перейти в нее, в Linux это можно сделать при помощи следующих команд:

      Виртуальное окружение Python windows. Что такое venv и virtualenv в Python, и как их использовать

      Заменитеmy_python_projectна желаемое название проекта.

      Создание виртуальной среды

      Теперь создадим в этой папке виртуальную среду :

      Заменитеproject_name_myprojectна желаемое название виртуальной среды.

      Если у Вас возникает следующая ошибка:

      То Вам необходимо установить venv . Например, в Ubuntu для этого требуется выполнить следующую команду:

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

      Активация виртуальной среды

      Осталось активировать виртуальную среду при помощи команды:

      Виртуальное окружение Python windows. Что такое venv и virtualenv в Python, и как их использовать

      Заменитеproject_name_myprojectна название виртуальной среды, созданной на прошлом шаге.

      Если Вы используете Windows , и у Вас правильно установлен Python и pip , то Вы можете активировать виртуальную среду следующей командой:

      Заменитеproject_name_myprojectна название виртуальной среды, созданной на прошлом шаге.