Architecture 13 - Galaxy Dependencies Management
Contributors
Questions
How does Galaxy manage dependencies?
What is the virtualenv used for?
Where do JavaScript dependencies come from?
Objectives
Understand Python dependency management
Understand JavaScript dependency management
Learn about the wheels server
last_modification Published: Feb 19, 2026
last_modification Last Updated: Feb 19, 2026
layout: introduction_slides topic_name: Galaxy Architecture
Architecture 13 - Galaxy Dependencies Management
The architecture of Galaxy’s dependencies.
layout: true left-aligned class: left, middle — layout: true class: center, middle
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
virtualenvexists, use it. Otherwise download it as a script and setup a virtual environment using it. . "$GALAXY_VIRTUAL_ENV/bin/activate"- Upgrade to latest
pipto allow use of binary wheels. pip install -r requirements.txt --index-url 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 clientand relatedMakefiletargets.
| .footnote[Previous: Galaxy Client Architecture | Next: Galaxy Startup Process] |
Key Points
- 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
Thank you!
This material is the result of a collaborative work. Thanks to the Galaxy Training Network and all the contributors!
Tutorial Content is licensed under
Creative Commons Attribution 4.0 International License.