Python: виртуальная среда

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: Виртуальная среда

Непрочитанное сообщение Olej » 08 ноя 2019, 00:20

Olej писал(а):
25 авг 2018, 16:50
Последнее время пошло много публикаций относительно виртуальных сред Python, когда в каждой конкретной среде устанавливается свой набор версий и Python, и всех требуемых для проекта пакетов и модулей.
Если в 2011 году, когда начиналась эта тема, виртуальное окружение Python было ещё какой-то экзотикой, то на сегодня Python (главным образом Python3) становится основным инструментом в deep learning, машинном обучении, распознавании образов, нейросетях, а виртуальное окружение становится основной технологией развёртывания проектов в этих областях. Это связано (и естественно) с разносортностью версий пакетов, требуемых различным проектам.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: Виртуальная среда

Непрочитанное сообщение Olej » 05 янв 2022, 18:31

Olej писал(а):
08 ноя 2019, 00:20
Если в 2011 году, когда начиналась эта тема, виртуальное окружение Python было ещё какой-то экзотикой,
Снова понадобились виртуальные окружения Python3, теперь уже в связи с созданием тестовых окружений ptest ...
Использование виртуальных сред venv и virtualenv для создания окружения Python
15 апреля 2020
Самих пакетов, которые создают виртуальные окружения много. В этой статье речь пойдет про venv, virtualenv и virtualenvwrapper.

Навигация по посту

Для чего нужно виртуальные среды?
Установка и создания окружения с virtualenv
Активация и выход из окружения
Управление средами через virtualenvwrapper
Настройки для Linux
Настройки для Windows
Основные команды
Создание виртуальных сред со встроенным пакетом Python venv
Создание виртуального окружения в Pycharm
Создание списка установленных пакетов Requirements.txt

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: Виртуальная среда

Непрочитанное сообщение Olej » 05 янв 2022, 18:35

Olej писал(а):
05 янв 2022, 18:31
Использование виртуальных сред venv и virtualenv для создания окружения Python
Создание виртуальных сред со встроенным пакетом Python venv
Ранее, до версии Python >= 3.6 базовая установка интерпретатора шла вместе с пакетом pyenv, но на данный момент он считается устаревшим и более не поддерживается. На его смену пришел venv. В некоторых версиях ОС (Ubuntu/Debian) может потребоваться его отдельная установка:

Код: Выделить всё

sudo apt install python3-venv
Проверить, то что пакет venv установлен, можно так:

Код: Выделить всё

python -m venv
# или

Код: Выделить всё

python3 -m venv

Код: Выделить всё

olej@R420:~/2022/rus.linux.net.hist/timeweb$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 20.2
Release:	20.2
Codename:	uma

Код: Выделить всё

olej@R420:~/2022/rus.linux.net.hist/timeweb$ python3 -m venv
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] [--upgrade] [--without-pip] [--prompt PROMPT] ENV_DIR [ENV_DIR ...]
venv: error: the following arguments are required: ENV_DIR

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: Виртуальная среда

Непрочитанное сообщение Olej » 05 янв 2022, 18:47

Olej писал(а):
05 янв 2022, 18:35
На его смену пришел venv. В некоторых версиях ОС (Ubuntu/Debian) может потребоваться его отдельная установка:
Создаю виртуальное окружение:

Код: Выделить всё

olej@R420:~/2022/Python/pytest$ pwd
/home/olej/2022/Python/pytest

Код: Выделить всё

olej@R420:~/2022/Python/pytest$ python3 -m venv .venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt install python3.8-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/olej/2022/Python/pytest/.venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']
Облом-с :evil:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: Виртуальная среда

Непрочитанное сообщение Olej » 05 янв 2022, 18:51

Olej писал(а):
05 янв 2022, 18:47
Облом-с

Код: Выделить всё

olej@R420:~$ apt search venv
p   apt-venv                                                                             - apt virtual environment                                                                        
p   elpa-pyvenv                                                                          - Python virtual environment interface                                                           
p   python3-venv                                                                         - pyvenv-3 binary for python3 (default python3 version)                                          
p   python3-venv:i386                                                                    - pyvenv-3 binary for python3 (default python3 version)                                          
v   python3-venv:any                                                                     -                                                                                                
p   python3.8-venv                                                                       - Interactive high-level object-oriented language (pyvenv binary, version 3.8)                   
p   python3.8-venv:i386                                                                  - Interactive high-level object-oriented language (pyvenv binary, version 3.8)                   
v   python3.8-venv:any                                                                   -                                                                                                
p   python3.9-venv                                                                       - Interactive high-level object-oriented language (pyvenv binary, version 3.9)                   
p   python3.9-venv:i386                                                                  - Interactive high-level object-oriented language (pyvenv binary, version 3.9)                   
v   python3.9-venv:any                                                                   -                                                                      

Код: Выделить всё

olej@R420:~$ sudo apt install python3-venv
[sudo] пароль для olej:       
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  python-atomicwrites python-attr python-configparser python-contextlib2 python-funcsigs python-importlib-metadata python-more-itertools python-packaging python-pathlib2
  python-pkg-resources python-pluggy python-py python-pyparsing python-scandir python-six python-wcwidth python-zipp
Для их удаления используйте «sudo apt autoremove».
Будут установлены следующие дополнительные пакеты:
  python3.8-venv
Следующие НОВЫЕ пакеты будут установлены:
  python3-venv python3.8-venv
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 6.672 B архивов.
После данной операции объём занятого дискового пространства возрастёт на 38,9 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://ubuntu.org.ua/ubuntu focal-updates/universe amd64 python3.8-venv amd64 3.8.10-0ubuntu1~20.04.2 [5.444 B]
Пол:2 http://ubuntu.org.ua/ubuntu focal/universe amd64 python3-venv amd64 3.8.2-0ubuntu2 [1.228 B]
Получено 6.672 B за 0с (40,7 kB/s)       
Выбор ранее не выбранного пакета python3.8-venv.
(Чтение базы данных … на данный момент установлено 409403 файла и каталога.)
Подготовка к распаковке …/python3.8-venv_3.8.10-0ubuntu1~20.04.2_amd64.deb …
Распаковывается python3.8-venv (3.8.10-0ubuntu1~20.04.2) …
Выбор ранее не выбранного пакета python3-venv.
Подготовка к распаковке …/python3-venv_3.8.2-0ubuntu2_amd64.deb …
Распаковывается python3-venv (3.8.2-0ubuntu2) …
Настраивается пакет python3.8-venv (3.8.10-0ubuntu1~20.04.2) …
Настраивается пакет python3-venv (3.8.2-0ubuntu2) …
Обрабатываются триггеры для man-db (2.9.1-1) …

Код: Выделить всё

olej@R420:~/2022/Python/pytest$ python3 -m venv .venv
Без какого-либо вывода...
Активизирую виртуальное окружение:

Код: Выделить всё

olej@R420:~/2022/Python/pytest$ source .venv/bin/activate
(.venv) olej@R420:~/2022/Python/pytest$
И смотрю что там установлено

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ pip3 list
Package       Version
------------- -------
pip           20.0.2 
pkg-resources 0.0.0  
setuptools    44.0.0 

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ python --version
Python 3.8.10

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей