{"id":34063710,"url":"https://github.com/tjquillan/poetry-plugin-pyenv","last_synced_at":"2025-12-14T05:40:36.367Z","repository":{"id":63449267,"uuid":"567366203","full_name":"tjquillan/poetry-plugin-pyenv","owner":"tjquillan","description":"Poetry plugin to make working with Poetry and Pyenv seamless","archived":false,"fork":false,"pushed_at":"2024-09-25T14:15:01.000Z","size":164,"stargazers_count":14,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-29T02:23:11.677Z","etag":null,"topics":["poetry","poetry-plugin","pyenv","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tjquillan.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-17T16:29:01.000Z","updated_at":"2025-01-20T17:00:42.000Z","dependencies_parsed_at":"2024-08-21T03:54:38.921Z","dependency_job_id":null,"html_url":"https://github.com/tjquillan/poetry-plugin-pyenv","commit_stats":{"total_commits":39,"total_committers":1,"mean_commits":39.0,"dds":0.0,"last_synced_commit":"5dff17ebc8a8f13fa736b7ac26988627e0b51c85"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/tjquillan/poetry-plugin-pyenv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tjquillan%2Fpoetry-plugin-pyenv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tjquillan%2Fpoetry-plugin-pyenv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tjquillan%2Fpoetry-plugin-pyenv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tjquillan%2Fpoetry-plugin-pyenv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tjquillan","download_url":"https://codeload.github.com/tjquillan/poetry-plugin-pyenv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tjquillan%2Fpoetry-plugin-pyenv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27718627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-14T02:00:11.348Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["poetry","poetry-plugin","pyenv","python"],"created_at":"2025-12-14T05:40:35.600Z","updated_at":"2025-12-14T05:40:36.356Z","avatar_url":"https://github.com/tjquillan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Poetry Plugin Pyenv\n\nThis package aims to make working with [Poetry](https://python-poetry.org/) and [Pyenv](https://github.com/pyenv/pyenv) a seamless experience.\n\n## Installation\n\nThe easist and *recommended* way to install is using Poetry's `self add` command.\n\n```bash\npoetry self add poetry-plugin-pyenv\n```\n\nIf you used `pipx` to install Poetry you can add the plugin via the `pipx inject` command.\n\n```bash\npipx inject poetry poetry-plugin-pyenv\n```\n\nOtherwise, if you used `pip` to install Poetry you can add the plugin packages via the `pip install` command.\n\n```bash\npip install poetry-plugin-pyenv\n```\n\n## Usage\n\n### Enabling\n\nThis plugin work in conjunction with the [`virtualenvs.prefer-active-python`](https://python-poetry.org/docs/configuration#virtualenvsprefer-active-python-experimental) option. Therefore the first step to using this plugin is enabling that option.\n\nTo enable the option locally you can use the following command.\n\n```bash\npoetry config virtualenvs.prefer-active-python true --local\n```\n\nTo, instead, enable the option globally use the following command.\n\n```bash\npoetry config virtualenvs.prefer-active-python true\n```\n\nOnce enabled this plugin should work transparently to enable seamless interoperability with [Poetry](https://python-poetry.org/) and [Pyenv](https://github.com/pyenv/pyenv). To learn more about what this plugin does behind the scenes see the [Behavior](#behavior) section.\n\n## Behavior\n\n[Poetry Plugin Pyenv](#poetry-plugin-pyenv) works by treating `python` constraint declared in the `tool.poetry.dependencies` of `pyproject.toml` as a source of truth for Pyenv's local python version. To do this it will exercise the following behavior.\n\n### Pyenv already has a local version\n\nIf Pyenv already has a local version it will check if the local version matches the constraint specified in the `pyproject.toml`. If the constraint is not satisfied it will proceed to [selecting a new python version](#selecting-a-new-python-version). If the constraint is satisfied Poetry's virtualenv will be created using the local version thanks to [`virtualenvs.prefer-active-python`](https://python-poetry.org/docs/configuration#virtualenvsprefer-active-python-experimental).\n\n### Pyenv has no local version\n\nIf Pyenv does not have a local version set it will proceed to [selecting a new python version](#selecting-a-new-python-version).\n\n### Selecting a new python version\n\nIf a new python version needs to be selected the list of installable versions available to Pyenv will be checked against the constraint. From this list the latest possible version to satisfy the constraint will be selected. If this version is not installed it will be installed. It will then be set as Pyenv's local version and Poetry's virtualenv will be [re]created.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftjquillan%2Fpoetry-plugin-pyenv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftjquillan%2Fpoetry-plugin-pyenv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftjquillan%2Fpoetry-plugin-pyenv/lists"}