{"id":34091947,"url":"https://github.com/travel-tools/travel","last_synced_at":"2026-03-27T04:30:46.133Z","repository":{"id":36955691,"uuid":"391461083","full_name":"travel-tools/travel","owner":"travel-tools","description":"A software manager for easy development and distribution of Python code","archived":false,"fork":false,"pushed_at":"2023-07-13T20:48:46.000Z","size":329,"stargazers_count":14,"open_issues_count":7,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-03-15T02:49:53.164Z","etag":null,"topics":["development","package","package-manager","pip","python","venv","virtualenv"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/travel-tools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-31T20:47:02.000Z","updated_at":"2024-06-08T02:50:44.000Z","dependencies_parsed_at":"2023-01-17T08:15:28.233Z","dependency_job_id":null,"html_url":"https://github.com/travel-tools/travel","commit_stats":null,"previous_names":["piper-tools/piper"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/travel-tools/travel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/travel-tools%2Ftravel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/travel-tools%2Ftravel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/travel-tools%2Ftravel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/travel-tools%2Ftravel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/travel-tools","download_url":"https://codeload.github.com/travel-tools/travel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/travel-tools%2Ftravel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31019281,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T03:51:26.850Z","status":"ssl_error","status_checked_at":"2026-03-27T03:51:09.693Z","response_time":164,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["development","package","package-manager","pip","python","venv","virtualenv"],"created_at":"2025-12-14T14:54:35.204Z","updated_at":"2026-03-27T04:30:46.117Z","avatar_url":"https://github.com/travel-tools.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Travel\r\n\r\nA software manager for easy **development** and **distribution** of **Python code**.\r\n\r\nThe main features that Travel adds to Python are:\r\n\r\n- Support for large-scale, **multi-package projects** (with common packages)\r\n- **Reproducibility** (clear, transparent **dependency management**)\r\n- Robust **development-lifecycle**, from prototyping to distribution\r\n- Possibility to have different scoped Virtual Environment (e.g. for development, for testing, for notebooks...) with additional requirements\r\n- Link multiple and different **versions of Python** to different projects\r\n\r\nTravel is inspired by what **[Maven](https://maven.apache.org/)** is for Java and uses [Pip](https://github.com/pypa/pip) and [Virtual Environments](https://docs.python.org/3/library/venv.html).\r\n\r\n## Why Travel\r\n\r\n**Python is great** at many things, particularly for **scripting**. But it is powerful enough to create **complex software** too. Still, when doing so, it lacks some robustness and quickness.\r\n\r\nInstead:\r\n \r\n- Travel lets you **forget about repetitive setup of Python projects**, with creation of Virtual Environments, issues with imports, PYTHONPATH, folder structures. It does all of this for you.\r\n\r\n- Travel ensures that when you run a Python script, all its **requirements are installed**. Along with reproducibility, this makes room for **easy collaboration** between developers.\r\n\r\n- Also, while with standard tools it's hard to have multiple packages, one requiring another, with Travel this is a matter of **few YAML files**. You can **split your project** in several packages instead of having tons of requirements, code replication and/or single package-monoliths. \r\n\r\n- Travel manages multiple versions of Python, so that you can work on several projects with different versions. You can install them and then link them to the specific projects you want.\r\n\r\nAll in all, Travel lets you design **proper structure and modularity** for your code. No worries about imports and low-level stuff.\r\n\r\n## Example of Travel Project\r\n\r\nYou can find an example of Travel project [here](https://github.com/travel-tools/travel/tree/master/src/travel/tests/data/complexproject).\r\n\r\n## Installation\r\n\r\nWith Python \u003e= 3.7 \u003c 3.10, simply run\r\n\r\n```\r\npip install travel\r\n```\r\n\r\nFrom now on, you can use `travel` from command line.\r\n\r\n\r\n## Create a new project or add a new Bag\r\n\r\nTravel supports several packages (\"Bags\") in a single project, nested in other folders (\"Bags containing Bags\"). You can create a project using [Travel Plans](https://github.com/travel-tools/cookiecutter-travelplan).\r\n\r\nYou can also create a new Bag after the first plan using `travel add`, to add a new [Travel Plan](https://github.com/travel-tools/cookiecutter-travelplan).\r\n\r\nFor a quick understanding, see below.\r\n\r\n## Basic Usage\r\n\r\nTo see how to create your first Travel project, see the section above.\r\n\r\nOnce you have defined your structure of Bags (submodules of your project), for instance like in the [example](https://github.com/travel-tools/travel/tree/master/src/travel/tests/data/complexproject) or like this\r\n\r\n```\r\ncomplexproject/\r\n    common/\r\n        package/\r\n        bag.yml\r\n    microservices/\r\n        first/\r\n            package/\r\n            bag.yml\r\n        second/\r\n            package/\r\n            bag.yml\r\n        bag.yml\r\n    bag.yml\r\n```\r\n\r\nyou can run\r\n\r\n```\r\ntravel setup\r\n```\r\n\r\nin the main folder, where the first `bag.yml` file is located.\r\n\r\nThis will:\r\n\r\n- Understand the dependencies\r\n- Create the Virtual Environments\r\n- Install the requirements\r\n- Install the packages themselves in development mode (so that you can `import` them in their Virtual Environments)\r\n\r\n\r\nYou can also create a distribution package with `travel pack [commands]`, which is the equivalent of `python setup.py [commands]`, for instance:\r\n\r\n```\r\ntravel pack sdist\r\n```\r\n\r\nin the folder of the Bag you want to pack. This will create the distribution in the `./build/package/dist` folder.\r\n\r\nIn any moment, you can run\r\n\r\n```\r\ntravel clean\r\n```\r\n\r\nto destroy the Virtual Environments and other build objects.\r\n\r\n## Configure Multiple Versions of Python\r\n\r\nBy default, Travel will create virtual envs with the same Python you have installed travel with.\r\n\r\nHowever, you can specify a different version either with:\r\n\r\n- `TRAVEL_PYTHON_PATH` environment variable, pointing to the Python exe\r\n- Travel Configuration\r\n\r\n### Multiple Python versions with Travel Configuration\r\n\r\nOnce you have installed your different Python versions with your preferred method and into your preferred location, Travel \r\njust needs to know where you have installed them.\r\n\r\n```\r\ntravel config add python \u003cversion\u003e \u003cpath\u003e\r\n```\r\n\r\ne.g.\r\n\r\n```\r\ntravel config add python 3.7.4 C:\\Users\\name\\python37\\python.exe\r\n```\r\n\r\nThis will save the path in a `.travel/config.yml` inside your home directory, e.g. `C:\\Users\\name\\.travel\\config.yml`.\r\n\r\nYou can specify a different config location with a `TRAVEL_CONFIG_PATH` environment variable.\r\n\r\nThis will let Travel know which Python to use when you specify\r\n\r\n```\r\npython: \u003cversion\u003e\r\n```\r\n\r\nin your project root `bag.yml`.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftravel-tools%2Ftravel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftravel-tools%2Ftravel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftravel-tools%2Ftravel/lists"}