environments
Environments
Recommended is venv because rest don't really work, but uv is on the scene
Update Outdated Packages
pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U UV
Package manager written in Rust combining pip, venv, penv
10-100x faster then pip
Uses
pyproject.tomlto manage dependencies,.python-versionto manage py version,First time you run
uv run,uv sync, oruv lock, creates venv anduv.lockwhich has exact dependencies
# Initialized project in current dir with pyproject
uv init
# To migrate from requirements.txt
uv add -r requirements.txt -c constraints.txt
# To sync environment with listed dependencies
uv sync
uv add 'requests==2.31.0'
uv add ruff
uv run ruff check
uv remove requestsCreating Specific Envs
Groups
Other
Venv
Conda/Mamba
Mamba is a faster drop in replacement for conda (100% faster, takes half the time)
Conda
Creation:
Usage
Installation
Inspection:
List all packages
List all environments
Removal:
EXPORT:
More:
And Jupyter notebook
Poetry
Looks like Poetry is a better/fast Pipenv
Not recommended sometimes it just doesn't work, but venv does like with dlib
ERROR: Could not build wheels for dlib, which is required to install pyproject.toml-based projects
Differences of Poetry vs Pipenv
pyproject.toml(PEP spec) vs Pipfile to store more deps info
Pipenv has python version management
Faster
Installation
Setup
Use asdf to manage python versions
Pull from existing
Usage
Make sure to put poetry.lock in VC
Pipenv
Pipenv vs virtualenv
Benefits of pipenv
deterministic install with pipfile.lock
Manages environment and pip simuletously
Using new commands mean you dont have to remember to pip freeze
can have dev and prod envs
Easy way to enforce others use the best practice of environments, environments allow different global versions of packages
Actually better syntax then virtual environments and pip freeze and requirements.txt
Disadvantages
New intrusive commands for installation and running
another layer of abstraction using virtualenvs underneath
https://github.com/pypa/pipenv/issues/796, if you mv the file you have to reinstall the pipenv :O [fix by having ]
Setup
pip install pipenv
pip install --user pipenv
pipenv installcreate env if one doesn't exist or install everything
pipenv --python 3 to specify version
Usage
pipenv install requests instead of pip install
pipenv install pymongo==3.4.0 for specific version
pipenv run to run stuff in virtual env
pipenv run python instead of python
Deploying
pipenv install --deploy —system
Last updated