# Galaxy Dependencies Management > 📊 View as slides ## Learning Questions - How does Galaxy manage dependencies? - What is the virtualenv used for? - Where do JavaScript dependencies come from? ## Learning Objectives - Understand Python dependency management - Understand JavaScript dependency management - Learn about the wheels server ## Dependencies - Python `script/common_startup.sh` sets up a `virtualenv` with required dependencies in `$GALAXY_ROOT/.venv` (or `$GALAXY_VIRTUAL_ENV` if set). - Check for existing virtual environment, if it doesn't exist check for `virtualenv`. - If `virtualenv` exists, use it. Otherwise download it as a script and setup a virtual environment using it. - `. "$GALAXY_VIRTUAL_ENV/bin/activate"` - Upgrade to latest `pip` to allow use of binary wheels. - `pip install -r requirements.txt --index-url [https://wheels.galaxyproject.org/simple`](https://wheels.galaxyproject.org/simple`) - Install dozens of dependencies. ## Dependencies - JavaScript - Dependencies are defined in `client/package.json`. - These are fetched from npm and compiled into bundles as part of `make client` and related `Makefile` targets. ## Key Takeaways - Python: virtualenv with pip and wheels from galaxyproject.org - JavaScript: npm/yarn with package.json - No compilation required by default - Binary wheels for fast installation