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

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

Модератор: Olej

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

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

Непрочитанное сообщение Olej » 26 авг 2018, 13:34

Olej писал(а):

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

[olej@xenix ~]$ sudo python3 -m pip install virtualenvwrapper
WARNING: Running pip install with root privileges is generally not a good idea. Try `__main__.py install --user` instead.
Collecting virtualenvwrapper
...
Виртуальная среда Python – Основы
Кроме этого, у вас теперь в распоряжении имеются доступные команды оболочки, которые помогут в управлении виртуальной средой. Вот несколько из них:
workon
deactivate
mkvirtualenv
cdvirtualenv
rmvirtualenv

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

[olej@xenix ~]$ workon --help
Usage: workon env_name

           Deactivate any currently activated virtualenv
           and activate the named environment, triggering
           any hooks in the process.

       workon

           Print a list of available environments.
           (See also lsvirtualenv -b)

       workon (-h|--help)

           Show this help message.

       workon (-c|--cd) envname

           After activating the environment, cd to the associated
           project directory if it is set.

       workon (-n|--no-cd) envname

           After activating the environment, do not cd to the
           associated project directory.

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

[olej@xenix ~]$ deactivate --help
bash: deactivate: команда не найдена

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

[olej@xenix ~]$ mkvirtualenv --help
Usage: mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] env_name

 -a project_path

    Provide a full path to a project directory to associate with
    the new environment.

 -i package

    Install a package after the environment is created.
    This option may be repeated.

 -r requirements_file

    Provide a pip requirements file to install a base set of packages
    into the new environment.

virtualenv help:

Usage: virtualenv [OPTIONS] DEST_DIR

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -v, --verbose         Increase verbosity.
  -q, --quiet           Decrease verbosity.
  -p PYTHON_EXE, --python=PYTHON_EXE
                        The Python interpreter to use, e.g.,
                        --python=python3.5 will use the python3.5 interpreter
                        to create the new environment.  The default is the
                        interpreter that virtualenv was installed with
                        (/usr/bin/python3)
  --clear               Clear out the non-root install and start from scratch.
  --no-site-packages    DEPRECATED. Retained only for backward compatibility.
                        Not having access to global site-packages is now the
                        default behavior.
  --system-site-packages
                        Give the virtual environment access to the global
                        site-packages.
  --always-copy         Always copy files rather than symlinking.
  --relocatable         Make an EXISTING virtualenv environment relocatable.
                        This fixes up scripts and makes all .pth files
                        relative.
  --no-setuptools       Do not install setuptools in the new virtualenv.
  --no-pip              Do not install pip in the new virtualenv.
  --no-wheel            Do not install wheel in the new virtualenv.
  --extra-search-dir=DIR
                        Directory to look for setuptools/pip distributions in.
                        This option can be used multiple times.
  --download            Download preinstalled packages from PyPI.
  --no-download, --never-download
                        Do not download preinstalled packages from PyPI.
  --prompt=PROMPT       Provides an alternative prompt prefix for this
                        environment.
  --setuptools          DEPRECATED. Retained only for backward compatibility.
                        This option has no effect.
  --distribute          DEPRECATED. Retained only for backward compatibility.
                        This option has no effect.
  --unzip-setuptools    DEPRECATED.  Retained only for backward compatibility.
                        This option has no effect.

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

[olej@xenix ~]$ cdvirtualenv --help
ERROR: no virtualenv active, or active virtualenv is missing

[olej@xenix ~]$ rmvirtualenv --help
Removing --help...
Did not find environment /home/olej/.virtualenvs/--help to remove.
Понятно, что некоторые из команда работают только из или при запущенном виртуальном окружении.
Документация по командам здесь: virtualenvwrapper

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

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

Непрочитанное сообщение Olej » 26 авг 2018, 17:37

Olej писал(а): Как я себе создавал виртуальные среду под OpenCV верс.4 & распознавание QR кодов...
А теперь, что ещё гораздо важнее (для моих целей) - на одноплатном микрокомпьютере Orange Pi On.
Только ключевые моменты:
- установить это пользуясь Pyton 2 у меня так и не получилось ... но это ничего не значит - сбился по дороге на Python 3...

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

olej@orangepione:~$ sudo python3 -m pip install virtualenv
/usr/bin/python3: No module named pip
- первая неожиданность...

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

olej@orangepione:~$ aptitude search pip | grep python
p  python-apipkg - namespace control and lazy-import mechanism for Python
p  python-django-pipeline - Asset packaging library for Django
p  python-django-pipeline-doc - Documentation for Django Pipeline library
p  python-jsonpipe - Convert JSON to a UNIX-friendly line-based format
i  python-pip - Python package installer
i A python-pip-whl - Python package installer
v  python2.7-jsonpipe - 
p  python3-apipkg - namespace control and lazy-import mechanism for Python 3
p  python3-django-pipeline - Asset packaging library for Django (Python3 version)
p  python3-pip - Python package installer

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

olej@orangepione:~$ sudo apt install python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
Recommended packages:
  python3-dev python3-setuptools python3-wheel
The following NEW packages will be installed:
  python3-pip
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 142 kB of archives.
After this operation, 599 kB of additional disk space will be used.
Get:1 http://cdn-fastly.deb.debian.org/debian stretch/main armhf python3-pip all 9.0.1-2 [142 kB]
Fetched 142 kB in 0s (151 kB/s)
Selecting previously unselected package python3-pip.
(Reading database ... 77624 files and directories currently installed.)
Preparing to unpack .../python3-pip_9.0.1-2_all.deb ...
Unpacking python3-pip (9.0.1-2) ...
Setting up python3-pip (9.0.1-2) ...
Processing triggers for man-db (2.7.6.1-2) ...
- повторяем:

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

olej@orangepione:~$ sudo python3 -m pip install virtualenv
Collecting virtualenv
  Using cached https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv-16.0.0

olej@orangepione:~$ sudo python3 -m pip install virtualenvwrapper
Collecting virtualenvwrapper
  Using cached https://files.pythonhosted.org/packages/2b/8c/3192e10913ad945c0f0fcb17e9b2679434a28ad58ee31ce0104cba3b1154/virtualenvwrapper-4.8.2-py2.py3-none-any.whl
Collecting stevedore (from virtualenvwrapper)
  Using cached https://files.pythonhosted.org/packages/a1/d9/93a975469c53a9ee85de9ec0deb12345aa777748b4c263860668592344fe/stevedore-1.29.0-py2.py3-none-any.whl
Collecting virtualenv-clone (from virtualenvwrapper)
  Using cached https://files.pythonhosted.org/packages/6d/c2/dccb5ccf599e0c5d1eea6acbd058af7a71384f9740179db67a9182a24798/virtualenv_clone-0.3.0-py2.py3-none-any.whl
Requirement already satisfied: virtualenv in /usr/local/lib/python3.5/dist-packages (from virtualenvwrapper)
Collecting pbr!=2.1.0,>=2.0.0 (from stevedore->virtualenvwrapper)
  Using cached https://files.pythonhosted.org/packages/69/1c/98cba002ed975a91a0294863d9c774cc0ebe38e05bbb65e83314550b1677/pbr-4.2.0-py2.py3-none-any.whl
Collecting six>=1.10.0 (from stevedore->virtualenvwrapper)
  Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Installing collected packages: pbr, six, stevedore, virtualenv-clone, virtualenvwrapper
Successfully installed pbr-4.2.0 six-1.11.0 stevedore-1.29.0 virtualenv-clone-0.3.0 virtualenvwrapper-4.8.2

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

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

Непрочитанное сообщение Olej » 26 авг 2018, 17:49

Olej писал(а): - повторяем:
- редактируем $HOME/~/.bashrc, дописываем туда:

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

olej@orangepione:~/Face$ tail -n6  ~/.bashrc
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs              # optional
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3   # optional
# export PROJECT_HOME=$HOME/projects               # optional
source /usr/local/bin/virtualenvwrapper.sh
- в другом (или в этом) окне терминала применям изменения ... и ... вторая неожиданность:

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

olej@orangepione:~/Face$ source ~/.bashrc
Traceback (most recent call last):
  File "/usr/lib/python3.5/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.5/dist-packages/virtualenvwrapper/hook_loader.py", line 16, in <module>
    from stevedore import ExtensionManager
  File "/usr/local/lib/python3.5/dist-packages/stevedore/__init__.py", line 11, in <module>
    from .extension import ExtensionManager
  File "/usr/local/lib/python3.5/dist-packages/stevedore/extension.py", line 17, in <module>
    import pkg_resources
ImportError: No module named 'pkg_resources'
virtualenvwrapper.sh: There was a problem running the initialization hooks.

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 and that PATH is
set properly.

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

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

Непрочитанное сообщение Olej » 26 авг 2018, 17:52

Olej писал(а): ... и ... вторая неожиданность:

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

olej@orangepione:~$ apt search pkg_resources
Sorting... Done
Full Text Search... Done
pypy-pkg-resources/stable 33.1.1-1 all
  Package Discovery and Resource Access using pkg_resources

python-pkg-resources/stable 33.1.1-1 all
  Package Discovery and Resource Access using pkg_resources

python3-pkg-resources/stable 33.1.1-1 all
  Package Discovery and Resource Access using pkg_resources

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

olej@orangepione:~$ sudo apt install python3-pkg-resources
[sudo] password for olej:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  python3-setuptools
The following NEW packages will be installed:
  python3-pkg-resources
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 137 kB of archives.
After this operation, 523 kB of additional disk space will be used.
Get:1 http://cdn-fastly.deb.debian.org/debian stretch/main armhf python3-pkg-resources all 33.1.1-1 [137 kB]
Fetched 137 kB in 1s (124 kB/s)
Selecting previously unselected package python3-pkg-resources.
(Reading database ... 77702 files and directories currently installed.)
Preparing to unpack .../python3-pkg-resources_33.1.1-1_all.deb ...
Unpacking python3-pkg-resources (33.1.1-1) ...
Setting up python3-pkg-resources (33.1.1-1) ...

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

olej@orangepione:~/Face$ source ~/.bashrc
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/postmkproject
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/initialize
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/premkvirtualenv
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/prermvirtualenv
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/predeactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/postdeactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/get_env_details

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

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

Непрочитанное сообщение Olej » 26 авг 2018, 17:57

Создаю своё 1-е виртуальное окружение Python:

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

olej@orangepione:~/Face$ mkvirtualenv py3cv4 -p python3
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/olej/.virtualenvs/py3cv4/bin/python3
Also creating executable in /home/olej/.virtualenvs/py3cv4/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/py3cv4/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/py3cv4/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/py3cv4/bin/preactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/py3cv4/bin/postactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/py3cv4/bin/get_env_details
Смотрим как сразу же поменялся вид приглашения системы на терминале:

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

(py3cv4) olej@orangepione:~/Face$ pip list
Package    Version
---------- -------
pip        18.0
setuptools 40.2.0
wheel      0.31.1

(py3cv4) olej@orangepione:~/Face$ python --version
Python 3.5.3
Теперь это чистая Python-система со своими умолчаниями (версий) и инсталляциями.

P.S. Обратите внимание, что если у меня в основной системе Armbian версия Python по умолчанию 2.7.13, то в этом виртуальном окружении - 3.5.3.

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

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

Непрочитанное сообщение Olej » 26 авг 2018, 18:15

Olej писал(а):
Кроме этого, у вас теперь в распоряжении имеются доступные команды оболочки, которые помогут в управлении виртуальной средой. Вот несколько из них:
workon
deactivate
mkvirtualenv
cdvirtualenv
rmvirtualenv
Некоторые эксперименты:

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

(py3cv4) olej@orangepione:~/Face$ deactivate

olej@orangepione:~/Face$ rmvirtualenv py3cv4
Removing py3cv4...

olej@orangepione:~/Face$ mkvirtualenv py3cv4 -p python3
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/olej/.virtualenvs/py3cv4/bin/python3
Also creating executable in /home/olej/.virtualenvs/py3cv4/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/py3cv4/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/py3cv4/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/py3cv4/bin/preactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/py3cv4/bin/postactivate
virtualenvwrapper.user_scripts creating /home/olej/.virtualenvs/py3cv4/bin/get_env_details
(py3cv4) olej@orangepione:~/Face$ 
... - вышли - уничтожили - и заново создали - ...

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

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

Непрочитанное сообщение Olej » 07 ноя 2019, 23:58

Продолжу ... что там произошло за прошедшие сколько-то-там лет?

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

olej@ACER:~/2019_WORK/HISTORY/11/07$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster

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

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

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

Olej писал(а):
07 ноя 2019, 23:58
Продолжу ... что там произошло за прошедшие сколько-то-там лет?

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

olej@ACER:~$ pip3 search virtualenv | grep ^virtual
virtualenv-switcher (0.1.1)          - Virtualenv switcher.
virtualenv-api (2.1.17)              - An API for virtualenv/pip
virtualenv-clone (0.5.3)             - script to clone virtualenvs.
virtualenv-commands (0.2.3)          - Additional commands for virtualenv.
virtualenv-tools (1.0)               - A set of tools for virtualenv
virtualenv-tools3 (2.0.2)            - A set of tools for virtualenv
virtualenv-mgr (1.0.4)               - Tool to manage your virtualenvs
virtualenv-sh (0.2.2)                - Convenient shell interface to virtualenv
virtualenv-multiver (0.5)            - Python multi-version wrapper for virtualenv.
virtualenv-activator (0.1.2)         - A better activate script for Python's virtualenv
virtualenv-hax (0.0.1)               - A wrapper around virtualenv that avoids sys.path sadness.
virtualenv-relocate (0.1.0)          - https://github.com/pypa/virtualenv/issues/558
virtualenv-bin (0.9.1)               - Set of bash scripts that make bins installed in virtualenvs useful elsewhere.
virtualenv (16.7.7)                  - Virtual Python Environment builder
virtualenv-rewrite (14.7.0)          - Virtual Python Environment Builder (complete rewrite)
virtualenv-emacs (0.1.5)             - UNKNOWN
virtualenv-distribute (1.3.4.4)      - Virtual Python Environment builder
virtualenvy (16.2.0)                 - A virtualenv fork
virtualenv2 (0.0.1)                  - virtualenv alternative
virtualenvwrapper (4.8.4)            - Enhancements to virtualenv
virtualenv3 (0.0)                    - Obsolete fork of virtualenv
virtualfish (1.0.6)                  - A virtualenv wrapper for the Fish shell
virtual-node (0.1.0)                 - Install node.js into your virtualenv
virtualenvrunner (1.1.1)             - Runner for shell commands in virtualenv
virtual-less (0.0.1-1.3.3)           - Install lessc into your virtualenv
virtualenvutils (0.5.3)              - manage virtualenv based utilities
virtualenvify (0.1.0)                - Transform an existing Python project into a virtualenv
virtualenvcontext (0.1.6)            - switch virtualenvs with a python context manager

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

olej@ACER:~$ pip3 list | grep virtualenv
WARNING: You are using pip version 19.2.3, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

olej@ACER:~$ sudo pip3 install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl (1.4MB)
     |████████████████████████████████| 1.4MB 1.0MB/s 
Installing collected packages: pip
  Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
      Successfully uninstalled pip-19.2.3
Successfully installed pip-19.3.1
Установили...

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

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

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

Olej писал(а):
08 ноя 2019, 00:01
Установили...
Создаём среду виртуальных окружений:

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

olej@ACER:~$ pwd
/home/olej

olej@ACER:~$ mkdir python-virtual-environments

olej@ACER:~$ cd python-virtual-environments

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

olej@ACER:~/python-virtual-environments$ python3 -m venv pv1
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-get install python3-venv

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

Failing command: ['/home/olej/python-virtual-environments/pv1/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']
Облом...
Правим:

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

olej@ACER:~/python-virtual-environments$ sudo apt-get install python3-venv
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  python3.7-venv
Следующие НОВЫЕ пакеты будут установлены:
  python3-venv python3.7-venv
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 64 пакетов не обновлено.
Необходимо скачать 7 320 B архивов.
После данной операции объём занятого дискового пространства возрастёт на 44,0 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://deb.debian.org/debian buster/main amd64 python3.7-venv amd64 3.7.3-2 [6 140 B]
Пол:2 http://deb.debian.org/debian buster/main amd64 python3-venv amd64 3.7.3-1 [1 180 B]
Получено 7 320 B за 0с (34,7 kB/s)         
Выбор ранее не выбранного пакета python3.7-venv.
(Чтение базы данных … на данный момент установлено 414600 файлов и каталогов.)
Подготовка к распаковке …/python3.7-venv_3.7.3-2_amd64.deb …
Распаковывается python3.7-venv (3.7.3-2) …
Выбор ранее не выбранного пакета python3-venv.
Подготовка к распаковке …/python3-venv_3.7.3-1_amd64.deb …
Распаковывается python3-venv (3.7.3-1) …
Настраивается пакет python3.7-venv (3.7.3-2) …
Настраивается пакет python3-venv (3.7.3-1) …
Обрабатываются триггеры для man-db (2.8.5-2) …
Создаём конкретное изолированное окружение:

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

olej@ACER:~/python-virtual-environments$ python3 -m venv pv1

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

olej@ACER:~/python-virtual-environments$ tree pv1
pv1
├── bin
│   ├── activate
│   ├── activate.csh
│   ├── activate.fish
│   ├── easy_install
│   ├── easy_install-3.7
│   ├── pip
│   ├── pip3
│   ├── pip3.7
│   ├── python -> python3
│   └── python3 -> /usr/bin/python3
├── include
├── lib
│   └── python3.7
│       └── site-packages
│           ├── easy_install.py
│           ├── pip
│           │   ├── __init__.py
│           │   ├── _internal
│           │   │   ├── build_env.py
│           │   │   ├── cache.py
│           │   │   ├── cli
│           │   │   │   ├── autocompletion.py
│           │   │   │   ├── base_command.py
│           │   │   │   ├── cmdoptions.py
│           │   │   │   ├── __init__.py
│           │   │   │   ├── main_parser.py
│           │   │   │   ├── parser.py
│           │   │   │   ├── __pycache__
│           │   │   │   │   ├── autocompletion.cpython-37.pyc
│           │   │   │   │   ├── base_command.cpython-37.pyc
│           │   │   │   │   ├── cmdoptions.cpython-37.pyc
│           │   │   │   │   ├── __init__.cpython-37.pyc
│           │   │   │   │   ├── main_parser.cpython-37.pyc
│           │   │   │   │   ├── parser.cpython-37.pyc
│           │   │   │   │   └── status_codes.cpython-37.pyc
│           │   │   │   └── status_codes.py
│           │   │   ├── commands
│           │   │   │   ├── check.py
│           │   │   │   ├── completion.py
│           │   │   │   ├── configuration.py
│           │   │   │   ├── download.py
│           │   │   │   ├── freeze.py
│           │   │   │   ├── hash.py
│           │   │   │   ├── help.py
│           │   │   │   ├── __init__.py
│           │   │   │   ├── install.py
│           │   │   │   ├── list.py
│           │   │   │   ├── __pycache__
│           │   │   │   │   ├── check.cpython-37.pyc
│           │   │   │   │   ├── completion.cpython-37.pyc
│           │   │   │   │   ├── configuration.cpython-37.pyc
│           │   │   │   │   ├── download.cpython-37.pyc
│           │   │   │   │   ├── freeze.cpython-37.pyc
│           │   │   │   │   ├── hash.cpython-37.pyc
│           │   │   │   │   ├── help.cpython-37.pyc
│           │   │   │   │   ├── __init__.cpython-37.pyc
│           │   │   │   │   ├── install.cpython-37.pyc
│           │   │   │   │   ├── list.cpython-37.pyc
│           │   │   │   │   ├── search.cpython-37.pyc
│           │   │   │   │   ├── show.cpython-37.pyc
│           │   │   │   │   ├── uninstall.cpython-37.pyc
│           │   │   │   │   └── wheel.cpython-37.pyc
│           │   │   │   ├── search.py
│           │   │   │   ├── show.py
│           │   │   │   ├── uninstall.py
│           │   │   │   └── wheel.py
│           │   │   ├── configuration.py
│           │   │   ├── download.py
│           │   │   ├── exceptions.py
│           │   │   ├── index.py
│           │   │   ├── __init__.py
│           │   │   ├── locations.py
│           │   │   ├── models
│           │   │   │   ├── candidate.py
│           │   │   │   ├── format_control.py
│           │   │   │   ├── index.py
│           │   │   │   ├── __init__.py
│           │   │   │   ├── link.py
│           │   │   │   └── __pycache__
│           │   │   │       ├── candidate.cpython-37.pyc
│           │   │   │       ├── format_control.cpython-37.pyc
│           │   │   │       ├── index.cpython-37.pyc
│           │   │   │       ├── __init__.cpython-37.pyc
│           │   │   │       └── link.cpython-37.pyc
│           │   │   ├── operations
│           │   │   │   ├── check.py
│           │   │   │   ├── freeze.py
│           │   │   │   ├── __init__.py
│           │   │   │   ├── prepare.py
│           │   │   │   └── __pycache__
│           │   │   │       ├── check.cpython-37.pyc
│           │   │   │       ├── freeze.cpython-37.pyc
│           │   │   │       ├── __init__.cpython-37.pyc
│           │   │   │       └── prepare.cpython-37.pyc
│           │   │   ├── pep425tags.py
│           │   │   ├── __pycache__
│           │   │   │   ├── build_env.cpython-37.pyc
│           │   │   │   ├── cache.cpython-37.pyc
│           │   │   │   ├── configuration.cpython-37.pyc
│           │   │   │   ├── download.cpython-37.pyc
│           │   │   │   ├── exceptions.cpython-37.pyc
│           │   │   │   ├── index.cpython-37.pyc
│           │   │   │   ├── __init__.cpython-37.pyc
│           │   │   │   ├── locations.cpython-37.pyc
│           │   │   │   ├── pep425tags.cpython-37.pyc
│           │   │   │   ├── pyproject.cpython-37.pyc
│           │   │   │   ├── resolve.cpython-37.pyc
│           │   │   │   └── wheel.cpython-37.pyc
│           │   │   ├── pyproject.py
│           │   │   ├── req
│           │   │   │   ├── constructors.py
│           │   │   │   ├── __init__.py
│           │   │   │   ├── __pycache__
│           │   │   │   │   ├── constructors.cpython-37.pyc
│           │   │   │   │   ├── __init__.cpython-37.pyc
│           │   │   │   │   ├── req_file.cpython-37.pyc
│           │   │   │   │   ├── req_install.cpython-37.pyc
│           │   │   │   │   ├── req_set.cpython-37.pyc
│           │   │   │   │   ├── req_tracker.cpython-37.pyc
│           │   │   │   │   └── req_uninstall.cpython-37.pyc
│           │   │   │   ├── req_file.py
│           │   │   │   ├── req_install.py
│           │   │   │   ├── req_set.py
│           │   │   │   ├── req_tracker.py
│           │   │   │   └── req_uninstall.py
│           │   │   ├── resolve.py
│           │   │   ├── utils
│           │   │   │   ├── appdirs.py
│           │   │   │   ├── compat.py
│           │   │   │   ├── deprecation.py
│           │   │   │   ├── encoding.py
│           │   │   │   ├── filesystem.py
│           │   │   │   ├── glibc.py
│           │   │   │   ├── hashes.py
│           │   │   │   ├── __init__.py
│           │   │   │   ├── logging.py
│           │   │   │   ├── misc.py
│           │   │   │   ├── models.py
│           │   │   │   ├── outdated.py
│           │   │   │   ├── packaging.py
│           │   │   │   ├── __pycache__
│           │   │   │   │   ├── appdirs.cpython-37.pyc
│           │   │   │   │   ├── compat.cpython-37.pyc
│           │   │   │   │   ├── deprecation.cpython-37.pyc
│           │   │   │   │   ├── encoding.cpython-37.pyc
│           │   │   │   │   ├── filesystem.cpython-37.pyc
│           │   │   │   │   ├── glibc.cpython-37.pyc
│           │   │   │   │   ├── hashes.cpython-37.pyc
│           │   │   │   │   ├── __init__.cpython-37.pyc
│           │   │   │   │   ├── logging.cpython-37.pyc
│           │   │   │   │   ├── misc.cpython-37.pyc
│           │   │   │   │   ├── models.cpython-37.pyc
│           │   │   │   │   ├── outdated.cpython-37.pyc
│           │   │   │   │   ├── packaging.cpython-37.pyc
│           │   │   │   │   ├── setuptools_build.cpython-37.pyc
│           │   │   │   │   ├── temp_dir.cpython-37.pyc
│           │   │   │   │   ├── typing.cpython-37.pyc
│           │   │   │   │   └── ui.cpython-37.pyc
│           │   │   │   ├── setuptools_build.py
│           │   │   │   ├── temp_dir.py
│           │   │   │   ├── typing.py
│           │   │   │   └── ui.py
│           │   │   ├── vcs
│           │   │   │   ├── bazaar.py
│           │   │   │   ├── git.py
│           │   │   │   ├── __init__.py
│           │   │   │   ├── mercurial.py
│           │   │   │   ├── __pycache__
│           │   │   │   │   ├── bazaar.cpython-37.pyc
│           │   │   │   │   ├── git.cpython-37.pyc
│           │   │   │   │   ├── __init__.cpython-37.pyc
│           │   │   │   │   ├── mercurial.cpython-37.pyc
│           │   │   │   │   └── subversion.cpython-37.pyc
│           │   │   │   └── subversion.py
│           │   │   └── wheel.py
│           │   ├── __main__.py
│           │   ├── __pycache__
│           │   │   ├── __init__.cpython-37.pyc
│           │   │   └── __main__.cpython-37.pyc
│           │   └── _vendor
│           │       ├── __init__.py
│           │       ├── pep517
│           │       │   ├── check.py
│           │       │   ├── colorlog.py
│           │       │   ├── compat.py
│           │       │   ├── envbuild.py
│           │       │   ├── __init__.py
│           │       │   ├── _in_process.py
│           │       │   ├── __pycache__
│           │       │   │   ├── check.cpython-37.pyc
│           │       │   │   ├── colorlog.cpython-37.pyc
│           │       │   │   ├── compat.cpython-37.pyc
│           │       │   │   ├── envbuild.cpython-37.pyc
│           │       │   │   ├── __init__.cpython-37.pyc
│           │       │   │   ├── _in_process.cpython-37.pyc
│           │       │   │   └── wrappers.cpython-37.pyc
│           │       │   └── wrappers.py
│           │       └── __pycache__
│           │           └── __init__.cpython-37.pyc
│           ├── pip-18.1.dist-info
│           │   ├── entry_points.txt
│           │   ├── INSTALLER
│           │   ├── LICENSE.txt
│           │   ├── METADATA
│           │   ├── RECORD
│           │   ├── top_level.txt
│           │   └── WHEEL
│           ├── pkg_resources
│           │   ├── extern
│           │   │   ├── __init__.py
│           │   │   └── __pycache__
│           │   │       └── __init__.cpython-37.pyc
│           │   ├── __init__.py
│           │   ├── py31compat.py
│           │   ├── __pycache__
│           │   │   ├── __init__.cpython-37.pyc
│           │   │   └── py31compat.cpython-37.pyc
│           │   └── _vendor
│           │       ├── appdirs.py
│           │       ├── __init__.py
│           │       ├── packaging
│           │       │   ├── __about__.py
│           │       │   ├── _compat.py
│           │       │   ├── __init__.py
│           │       │   ├── markers.py
│           │       │   ├── __pycache__
│           │       │   │   ├── __about__.cpython-37.pyc
│           │       │   │   ├── _compat.cpython-37.pyc
│           │       │   │   ├── __init__.cpython-37.pyc
│           │       │   │   ├── markers.cpython-37.pyc
│           │       │   │   ├── requirements.cpython-37.pyc
│           │       │   │   ├── specifiers.cpython-37.pyc
│           │       │   │   ├── _structures.cpython-37.pyc
│           │       │   │   ├── utils.cpython-37.pyc
│           │       │   │   └── version.cpython-37.pyc
│           │       │   ├── requirements.py
│           │       │   ├── specifiers.py
│           │       │   ├── _structures.py
│           │       │   ├── utils.py
│           │       │   └── version.py
│           │       ├── __pycache__
│           │       │   ├── appdirs.cpython-37.pyc
│           │       │   ├── __init__.cpython-37.pyc
│           │       │   ├── pyparsing.cpython-37.pyc
│           │       │   └── six.cpython-37.pyc
│           │       ├── pyparsing.py
│           │       └── six.py
│           ├── pkg_resources-0.0.0.dist-info
│           │   ├── AUTHORS.txt
│           │   ├── INSTALLER
│           │   ├── LICENSE.txt
│           │   ├── METADATA
│           │   ├── RECORD
│           │   └── WHEEL
│           ├── __pycache__
│           │   └── easy_install.cpython-37.pyc
│           ├── setuptools
│           │   ├── archive_util.py
│           │   ├── build_meta.py
│           │   ├── cli-32.exe
│           │   ├── cli-64.exe
│           │   ├── cli.exe
│           │   ├── command
│           │   │   ├── alias.py
│           │   │   ├── bdist_egg.py
│           │   │   ├── bdist_rpm.py
│           │   │   ├── bdist_wininst.py
│           │   │   ├── build_clib.py
│           │   │   ├── build_ext.py
│           │   │   ├── build_py.py
│           │   │   ├── develop.py
│           │   │   ├── dist_info.py
│           │   │   ├── easy_install.py
│           │   │   ├── egg_info.py
│           │   │   ├── __init__.py
│           │   │   ├── install_egg_info.py
│           │   │   ├── install_lib.py
│           │   │   ├── install.py
│           │   │   ├── install_scripts.py
│           │   │   ├── launcher manifest.xml
│           │   │   ├── py36compat.py
│           │   │   ├── __pycache__
│           │   │   │   ├── alias.cpython-37.pyc
│           │   │   │   ├── bdist_egg.cpython-37.pyc
│           │   │   │   ├── bdist_rpm.cpython-37.pyc
│           │   │   │   ├── bdist_wininst.cpython-37.pyc
│           │   │   │   ├── build_clib.cpython-37.pyc
│           │   │   │   ├── build_ext.cpython-37.pyc
│           │   │   │   ├── build_py.cpython-37.pyc
│           │   │   │   ├── develop.cpython-37.pyc
│           │   │   │   ├── dist_info.cpython-37.pyc
│           │   │   │   ├── easy_install.cpython-37.pyc
│           │   │   │   ├── egg_info.cpython-37.pyc
│           │   │   │   ├── __init__.cpython-37.pyc
│           │   │   │   ├── install.cpython-37.pyc
│           │   │   │   ├── install_egg_info.cpython-37.pyc
│           │   │   │   ├── install_lib.cpython-37.pyc
│           │   │   │   ├── install_scripts.cpython-37.pyc
│           │   │   │   ├── py36compat.cpython-37.pyc
│           │   │   │   ├── register.cpython-37.pyc
│           │   │   │   ├── rotate.cpython-37.pyc
│           │   │   │   ├── saveopts.cpython-37.pyc
│           │   │   │   ├── sdist.cpython-37.pyc
│           │   │   │   ├── setopt.cpython-37.pyc
│           │   │   │   ├── test.cpython-37.pyc
│           │   │   │   ├── upload.cpython-37.pyc
│           │   │   │   └── upload_docs.cpython-37.pyc
│           │   │   ├── register.py
│           │   │   ├── rotate.py
│           │   │   ├── saveopts.py
│           │   │   ├── sdist.py
│           │   │   ├── setopt.py
│           │   │   ├── test.py
│           │   │   ├── upload_docs.py
│           │   │   └── upload.py
│           │   ├── config.py
│           │   ├── depends.py
│           │   ├── _deprecation_warning.py
│           │   ├── dep_util.py
│           │   ├── dist.py
│           │   ├── extension.py
│           │   ├── extern
│           │   │   ├── __init__.py
│           │   │   └── __pycache__
│           │   │       └── __init__.cpython-37.pyc
│           │   ├── glibc.py
│           │   ├── glob.py
│           │   ├── gui-32.exe
│           │   ├── gui-64.exe
│           │   ├── gui.exe
│           │   ├── __init__.py
│           │   ├── launch.py
│           │   ├── lib2to3_ex.py
│           │   ├── monkey.py
│           │   ├── msvc.py
│           │   ├── namespaces.py
│           │   ├── package_index.py
│           │   ├── pep425tags.py
│           │   ├── py27compat.py
│           │   ├── py31compat.py
│           │   ├── py33compat.py
│           │   ├── __pycache__
│           │   │   ├── archive_util.cpython-37.pyc
│           │   │   ├── build_meta.cpython-37.pyc
│           │   │   ├── config.cpython-37.pyc
│           │   │   ├── depends.cpython-37.pyc
│           │   │   ├── _deprecation_warning.cpython-37.pyc
│           │   │   ├── dep_util.cpython-37.pyc
│           │   │   ├── dist.cpython-37.pyc
│           │   │   ├── extension.cpython-37.pyc
│           │   │   ├── glibc.cpython-37.pyc
│           │   │   ├── glob.cpython-37.pyc
│           │   │   ├── __init__.cpython-37.pyc
│           │   │   ├── launch.cpython-37.pyc
│           │   │   ├── lib2to3_ex.cpython-37.pyc
│           │   │   ├── monkey.cpython-37.pyc
│           │   │   ├── msvc.cpython-37.pyc
│           │   │   ├── namespaces.cpython-37.pyc
│           │   │   ├── package_index.cpython-37.pyc
│           │   │   ├── pep425tags.cpython-37.pyc
│           │   │   ├── py27compat.cpython-37.pyc
│           │   │   ├── py31compat.cpython-37.pyc
│           │   │   ├── py33compat.cpython-37.pyc
│           │   │   ├── sandbox.cpython-37.pyc
│           │   │   ├── site-patch.cpython-37.pyc
│           │   │   ├── ssl_support.cpython-37.pyc
│           │   │   ├── unicode_utils.cpython-37.pyc
│           │   │   ├── version.cpython-37.pyc
│           │   │   ├── wheel.cpython-37.pyc
│           │   │   └── windows_support.cpython-37.pyc
│           │   ├── sandbox.py
│           │   ├── script (dev).tmpl
│           │   ├── script.tmpl
│           │   ├── site-patch.py
│           │   ├── ssl_support.py
│           │   ├── unicode_utils.py
│           │   ├── _vendor
│           │   │   ├── __init__.py
│           │   │   ├── packaging
│           │   │   │   ├── __about__.py
│           │   │   │   ├── _compat.py
│           │   │   │   ├── __init__.py
│           │   │   │   ├── markers.py
│           │   │   │   ├── __pycache__
│           │   │   │   │   ├── __about__.cpython-37.pyc
│           │   │   │   │   ├── _compat.cpython-37.pyc
│           │   │   │   │   ├── __init__.cpython-37.pyc
│           │   │   │   │   ├── markers.cpython-37.pyc
│           │   │   │   │   ├── requirements.cpython-37.pyc
│           │   │   │   │   ├── specifiers.cpython-37.pyc
│           │   │   │   │   ├── _structures.cpython-37.pyc
│           │   │   │   │   ├── utils.cpython-37.pyc
│           │   │   │   │   └── version.cpython-37.pyc
│           │   │   │   ├── requirements.py
│           │   │   │   ├── specifiers.py
│           │   │   │   ├── _structures.py
│           │   │   │   ├── utils.py
│           │   │   │   └── version.py
│           │   │   ├── __pycache__
│           │   │   │   ├── __init__.cpython-37.pyc
│           │   │   │   ├── pyparsing.cpython-37.pyc
│           │   │   │   └── six.cpython-37.pyc
│           │   │   ├── pyparsing.py
│           │   │   └── six.py
│           │   ├── version.py
│           │   ├── wheel.py
│           │   └── windows_support.py
│           └── setuptools-40.8.0.dist-info
│               ├── AUTHORS.txt
│               ├── dependency_links.txt
│               ├── entry_points.txt
│               ├── INSTALLER
│               ├── LICENSE.txt
│               ├── METADATA
│               ├── RECORD
│               ├── top_level.txt
│               ├── WHEEL
│               └── zip-safe
├── lib64 -> lib
├── pyvenv.cfg
└── share
    └── python-wheels
        ├── appdirs-1.4.3-py2.py3-none-any.whl
        ├── CacheControl-0.11.7-py2.py3-none-any.whl
        ├── certifi-2018.8.24-py2.py3-none-any.whl
        ├── chardet-3.0.4-py2.py3-none-any.whl
        ├── colorama-0.3.7-py2.py3-none-any.whl
        ├── distlib-0.2.8-py2.py3-none-any.whl
        ├── distro-1.3.0-py2.py3-none-any.whl
        ├── html5lib-1.0.1-py2.py3-none-any.whl
        ├── idna-2.6-py2.py3-none-any.whl
        ├── ipaddress-0.0.0-py2.py3-none-any.whl
        ├── lockfile-0.12.2-py2.py3-none-any.whl
        ├── packaging-19.0-py2.py3-none-any.whl
        ├── pip-18.1-py2.py3-none-any.whl
        ├── pkg_resources-0.0.0-py2.py3-none-any.whl
        ├── progress-1.2-py2.py3-none-any.whl
        ├── pyparsing-2.2.0-py2.py3-none-any.whl
        ├── pytoml-0.1.2-py2.py3-none-any.whl
        ├── requests-2.21.0-py2.py3-none-any.whl
        ├── retrying-1.3.3-py2.py3-none-any.whl
        ├── setuptools-40.8.0-py2.py3-none-any.whl
        ├── six-1.12.0-py2.py3-none-any.whl
        ├── urllib3-1.24.1-py2.py3-none-any.whl
        ├── webencodings-0.5.1-py2.py3-none-any.whl
        └── wheel-0.32.3-py2.py3-none-any.whl

52 directories, 395 files

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

olej@ACER:~/python-virtual-environments$ du -hs pv1
6,7M	pv1
И таким образом можем создать сколько угодно изолированных виртуальных окружений...

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

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

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

Olej писал(а):
08 ноя 2019, 00:07
Создаём конкретное изолированное окружение:
Заходим в выбранное окружение:

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

olej@ACER:~/python-virtual-environments$ pwd
/home/olej/python-virtual-environments

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

olej@ACER:~/python-virtual-environments$ source pv1/bin/activate
(pv1) olej@ACER:~/python-virtual-environments$ 
Вот как поменялось приглашение shell !
Смотрим состав созданного окружения:

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

(pv1) olej@ACER:~/python-virtual-environments$ pip3 list
Package       Version
------------- -------
pip           18.1   
pkg-resources 0.0.0  
setuptools    40.8.0 
Вот оно - практически пустое окружение, которое мы станем наполнять инсталляцией Python-пакетов (я предпочитаю это делать pip).
Мы остаёмся в том же исходном каталоге:

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

(pv1) olej@ACER:~/python-virtual-environments$ pwd
/home/olej/python-virtual-environments

Ответить

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

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

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