User Tools

Site Tools


devops:python:virtualenvironment

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

devops:python:virtualenvironment [2023/11/22 07:11] – created - external edit 127.0.0.1devops:python:virtualenvironment [2023/12/11 07:50] (current) srohr
Line 1: Line 1:
 +====== Python Virtual Environment ======
 +
 +===== venv Module =====
 +
 +<Code:none>
 +Required Debian Package:
 +ii  python3.11-venv          3.11.2-6          amd64          Interactive high-level object-oriented language (pyvenv binary, version 3.11)
 +
 +srohr@pluto:~/Projects/Python$ mkdir project1
 +srohr@pluto:~/Projects/Python$ python3 -m venv ./project1/venv
 +srohr@pluto:~/Projects/Python$ source cd project1
 +srohr@pluto:~/Projects/Python/project1$ source ./venv/bin/activate
 +
 +(venv) srohr@pluto:~/Projects/Python/project1$ pip list
 +Package    Version
 +---------- -------
 +pip        23.0.1
 +setuptools 66.1.1
 +
 +(venv) srohr@pluto:~/Projects/Python/project1$ pip freeze
 +
 +(venv) srohr@pluto:~/Projects/Python/project1$ pip freeze --local
 +
 +(venv) srohr@pluto:~/Projects/Python/project1$ pip install flask
 +Collecting flask
 +  Downloading flask-3.0.0-py3-none-any.whl (99 kB)
 +     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.7/99.7 kB 2.1 MB/s eta 0:00:00
 +Collecting Werkzeug>=3.0.0
 +  Downloading werkzeug-3.0.1-py3-none-any.whl (226 kB)
 +     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 226.7/226.7 kB 7.4 MB/s eta 0:00:00
 +Collecting Jinja2>=3.1.2
 +  Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
 +     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.1/133.1 kB 5.3 MB/s eta 0:00:00
 +Collecting itsdangerous>=2.1.2
 +  Downloading itsdangerous-2.1.2-py3-none-any.whl (15 kB)
 +Collecting click>=8.1.3
 +  Downloading click-8.1.7-py3-none-any.whl (97 kB)
 +     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.9/97.9 kB 5.2 MB/s eta 0:00:00
 +Collecting blinker>=1.6.2
 +  Downloading blinker-1.7.0-py3-none-any.whl (13 kB)
 +Collecting MarkupSafe>=2.0
 +  Downloading MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
 +Installing collected packages: MarkupSafe, itsdangerous, click, blinker, Werkzeug, Jinja2, flask
 +Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.3 Werkzeug-3.0.1 blinker-1.7.0 click-8.1.7 flask-3.0.0 itsdangerous-2.1.2
 +
 +(venv) srohr@pluto:~/Projects/Python/project1$ pip freeze
 +blinker==1.7.0
 +click==8.1.7
 +Flask==3.0.0
 +itsdangerous==2.1.2
 +Jinja2==3.1.2
 +MarkupSafe==2.1.3
 +Werkzeug==3.0.1
 +
 +(venv) srohr@pluto:~/Projects/Python/project1$ 
 +
 +(venv) srohr@pluto:~/Projects/Python/project1$ pip freeze > ../requirements.txt
 +
 +(venv) srohr@pluto:~/Projects/Python/project1$ cat ../requirements.txt 
 +blinker==1.7.0
 +click==8.1.7
 +Flask==3.0.0
 +itsdangerous==2.1.2
 +Jinja2==3.1.2
 +MarkupSafe==2.1.3
 +Werkzeug==3.0.1
 +
 +(venv) srohr@pluto:~/Projects/Python/project1$ deactivate 
 +srohr@pluto:~/Projects/Python/project1$ 
 +
 +</Code>
 +
 +requirements.txt can be a simple file with all the modules listed
 +<Code:none>
 +blinker
 +click
 +Flask
 +itsdangerous
 +Jinja2
 +MarkupSafe
 +Werkzeug
 +</Code>
 +
 +It is also possible to download exact versions of a module or a range of versions
 +<Code:none>
 +blinker>=1.6.0,<1.6.5
 +click==8.1.7
 +Flask>=3.0.0
 +</Code>
 +
 +The requirements.txt file can be used to install all the packages listed in the file within a new environment.
 +<Code:none>
 +srohr@pluto:~/Projects/Python$ mkdir project2
 +srohr@pluto:~/Projects/Python$ python3 -m venv ./project2/venv
 +srohr@pluto:~/Projects/Python$ source ./project2/venv/bin/activate
 +(venv) srohr@pluto:~/Projects/Python$ pip install -r ./project1/venv/
 +bin/        include/    lib/        lib64/      pyvenv.cfg  
 +(venv) srohr@pluto:~/Projects/Python$ #pip install -r ../requirements.txt 
 +(venv) srohr@pluto:~/Projects/Python$ pip freeze
 +(venv) srohr@pluto:~/Projects/Python$ pip list
 +Package    Version
 +---------- -------
 +pip        23.0.1
 +setuptools 66.1.1
 +(venv) srohr@pluto:~/Projects/Python$ pip install -r ../requirements.txt 
 +Collecting blinker==1.7.0
 +  Using cached blinker-1.7.0-py3-none-any.whl (13 kB)
 +Collecting click==8.1.7
 +  Using cached click-8.1.7-py3-none-any.whl (97 kB)
 +Collecting Flask==3.0.0
 +  Using cached flask-3.0.0-py3-none-any.whl (99 kB)
 +Collecting itsdangerous==2.1.2
 +  Using cached itsdangerous-2.1.2-py3-none-any.whl (15 kB)
 +Collecting Jinja2==3.1.2
 +  Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
 +Collecting MarkupSafe==2.1.3
 +  Using cached MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
 +Collecting Werkzeug==3.0.1
 +  Using cached werkzeug-3.0.1-py3-none-any.whl (226 kB)
 +Installing collected packages: MarkupSafe, itsdangerous, click, blinker, Werkzeug, Jinja2, Flask
 +Successfully installed Flask-3.0.0 Jinja2-3.1.2 MarkupSafe-2.1.3 Werkzeug-3.0.1 blinker-1.7.0 click-8.1.7 itsdangerous-2.1.2
 +(venv) srohr@pluto:~/Projects/Python$ pip list
 +Package      Version
 +------------ -------
 +blinker      1.7.0
 +click        8.1.7
 +Flask        3.0.0
 +itsdangerous 2.1.2
 +Jinja2       3.1.2
 +MarkupSafe   2.1.3
 +pip          23.0.1
 +setuptools   66.1.1
 +Werkzeug     3.0.1
 +(venv) srohr@pluto:~/Projects/Python$ pip freeze
 +blinker==1.7.0
 +click==8.1.7
 +Flask==3.0.0
 +itsdangerous==2.1.2
 +Jinja2==3.1.2
 +MarkupSafe==2.1.3
 +Werkzeug==3.0.1
 +(venv) srohr@pluto:~/Projects/Python$
 +</Code>
 +
 +
 +<Code:none>
 +srohr@pluto:~/Projects/Python$ mkdir project3
 +srohr@pluto:~/Projects/Python$ python3 -m venv ./project3/venv --system-site-packages
 +srohr@pluto:~/Projects/Python$ cd project3/
 +srohr@pluto:~/Projects/Python/project3$ source venv/bin/activate
 +(venv) srohr@pluto:~/Projects/Python/project3$ pip list
 +Package            Version
 +------------------ ----------
 +anyio              3.6.2
 +attrs              22.2.0
 +blinker            1.5
 +Brlapi             0.8.4
 +certifi            2022.9.24
 +chardet            5.1.0
 +charset-normalizer 3.0.1
 +click              8.1.3
 +colorama           0.4.6
 +crit               3.17.1
 +cryptography       38.0.4
 +cupshelpers        1.0
 +dbus-python        1.3.2
 +distlib            0.3.6
 +distro             1.8.0
 +distro-info        1.5
 +dnspython          2.3.0
 +docker             5.0.3
 +docker-compose     1.29.2
 +dockerpty          0.4.1
 +docopt             0.6.2
 +feedparser         6.0.10
 +filelock           3.9.0
 +fuse-python        1.0.5
 +GDAL               3.6.2
 +gpg                1.18.0
 +h11                0.14.0
 +h2                 4.1.0
 +hpack              4.0.0
 +httpcore           0.16.3
 +httplib2           0.20.4
 +httpx              0.23.3
 +hyperframe         6.0.0
 +idna               3.3
 +jsonpointer        2.3
 +jsonschema         4.10.3
 +lazr.restfulclient 0.14.5
 +lazr.uri           1.0.6
 +louis              3.24.0
 +Mako               1.2.4.dev0
 +Markdown           3.4.1
 +markdown-it-py     2.1.0
 +MarkupSafe         2.1.2
 +mdurl              0.1.2
 +musicbrainzngs     0.7.1
 +mutagen            1.46.0
 +numpy              1.24.2
 +oauthlib           3.2.2
 +pip                23.0.1
 +platformdirs       2.6.0
 +protobuf           4.21.12
 +pycairo            1.20.1
 +pycups             2.0.1
 +pycurl             7.45.2
 +Pygments           2.14.0
 +PyGObject          3.42.2
 +pyinotify          0.9.6
 +PyJWT              2.6.0
 +pylibacl           0.7.0
 +pyparsing          3.0.9
 +PyQt5              5.15.9
 +PyQt5-sip          12.11.1
 +pyrsistent         0.18.1
 +PySimpleSOAP       1.16.2
 +pysmbc             1.0.23
 +python-apt         2.6.0
 +python-dateutil    2.8.2
 +python-debian      0.1.49
 +python-debianbts   4.0.1
 +python-dotenv      0.21.0
 +pyxattr            0.8.1
 +pyxdg              0.28
 +PyYAML             6.0
 +quodlibet          4.5.0
 +reportbug          12.0.0
 +requests           2.28.1
 +requests-toolbelt  0.10.1
 +rfc3986            1.5.0
 +rfc3987            1.3.8
 +rich               13.3.1
 +setuptools         66.1.1
 +sgmllib3k          1.0.0
 +six                1.16.0
 +sniffio            1.2.0
 +texttable          1.6.7
 +tornado            6.2
 +uritemplate        4.1.1
 +urllib3            1.26.12
 +virtualenv         20.17.1+ds
 +wadllib            1.3.6
 +webcolors          1.11.1
 +websocket-client   1.2.3
 +wheel              0.38.4
 +xdg                5
 +(venv) srohr@pluto:~/Projects/Python/project3$ pip freeze
 +anyio==3.6.2
 +attrs==22.2.0
 +blinker==1.5
 +Brlapi==0.8.4
 +certifi==2022.9.24
 +chardet==5.1.0
 +charset-normalizer==3.0.1
 +click==8.1.3
 +colorama==0.4.6
 +crit==3.17.1
 +cryptography==38.0.4
 +cupshelpers==1.0
 +dbus-python==1.3.2
 +distlib==0.3.6
 +distro==1.8.0
 +distro-info==1.5
 +dnspython==2.3.0
 +docker==5.0.3
 +docker-compose==1.29.2
 +dockerpty==0.4.1
 +docopt==0.6.2
 +feedparser==6.0.10
 +filelock==3.9.0
 +fuse-python==1.0.5
 +GDAL==3.6.2
 +gpg==1.18.0
 +h11==0.14.0
 +h2==4.1.0
 +hpack==4.0.0
 +httpcore==0.16.3
 +httplib2==0.20.4
 +httpx==0.23.3
 +hyperframe==6.0.0
 +idna==3.3
 +jsonpointer==2.3
 +jsonschema==4.10.3
 +lazr.restfulclient==0.14.5
 +lazr.uri==1.0.6
 +louis==3.24.0
 +Mako==1.2.4.dev0
 +Markdown==3.4.1
 +markdown-it-py==2.1.0
 +MarkupSafe==2.1.2
 +mdurl==0.1.2
 +musicbrainzngs==0.7.1
 +mutagen==1.46.0
 +numpy==1.24.2
 +oauthlib==3.2.2
 +platformdirs==2.6.0
 +protobuf==4.21.12
 +pycairo==1.20.1
 +pycups==2.0.1
 +pycurl==7.45.2
 +Pygments==2.14.0
 +PyGObject==3.42.2
 +pyinotify==0.9.6
 +PyJWT==2.6.0
 +pylibacl==0.7.0
 +pyparsing==3.0.9
 +PyQt5==5.15.9
 +PyQt5-sip==12.11.1
 +pyrsistent==0.18.1
 +PySimpleSOAP==1.16.2
 +pysmbc==1.0.23
 +python-apt==2.6.0
 +python-dateutil==2.8.2
 +python-debian==0.1.49
 +python-debianbts==4.0.1
 +python-dotenv==0.21.0
 +pyxattr==0.8.1
 +pyxdg==0.28
 +PyYAML==6.0
 +quodlibet==4.5.0
 +reportbug==12.0.0
 +requests==2.28.1
 +requests-toolbelt==0.10.1
 +rfc3986==1.5.0
 +rfc3987==1.3.8
 +rich==13.3.1
 +sgmllib3k==1.0.0
 +six==1.16.0
 +sniffio==1.2.0
 +texttable==1.6.7
 +tornado==6.2
 +uritemplate==4.1.1
 +urllib3==1.26.12
 +virtualenv==20.17.1+ds
 +wadllib==1.3.6
 +webcolors==1.11.1
 +websocket-client==1.2.3
 +xdg==5
 +(venv) srohr@pluto:~/Projects/Python/project3$ 
 +</Code>
 +
 +===== virtualenv Module =====
 +
 +
  

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki