Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pyenv: init at 1.2.20 #94769

Closed
wants to merge 2 commits into from
Closed

pyenv: init at 1.2.20 #94769

wants to merge 2 commits into from

Conversation

StephenWithPH
Copy link
Contributor

Motivation for this change

pyenv is a pure shell (i.e., it does not depend on Python) Python version manager. Spiritually, it is similar to rbenv. The anticipated use case is to ease Python development when one is already using nixpkgs to configure one's system.

Of note, this PR does for pyenv what #89433 does for rbenv.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@StephenWithPH
Copy link
Contributor Author

There are some thorny challenges. For example, PYENV_ROOT wants to point to where all of the scripts are installed. This is somewhere in the store. PYENV_ROOT informs the location of where pyenv install puts Python versions. Since this is (by default) an immutable store path, things don't work.

All in all, it seems pyenv will be difficult to effectively wire up with Nix.

https://nixos.org/nixos/packages.html?attr=poetry&channel=nixpkgs-unstable&query=poetry manages to bring along Python in a way that works, so I'm going to leave that link here for future searches.

Of course, this means you can't use an arbitrary Python version (via the linked Poetry Nix package).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants