3 ms·
Could you please link to your favorite way to install python at specific version and all dependencies without have to put anything in a global place. Ideally on
by gernb 4y ago
Could you please link to your favorite way to install python at specific version and all dependencies without have to put anything in a global place. Ideally on MacOS (since it's what I'm on most). I don't have homebrew or macports since eventually those always lead to me getting a borked system since they want everything installed globally.
- takeda 4y agoNot the GP, but I became a big fan of using poetry for managing python package dependencies. For managing python itself and binary libraries I started using Nix package manager. It allows to describe all dependencies via code, but with time that code became a boilerplate, so I created this: https://github.com/takeda/nix-cde https://github.com/takeda/nix-cde It works very well for me so far. You do need to have Nix[1] installed, but hopefully that should be the only thing needed and everything you can just list in project.nix file (in the example in README.md you should have access to `dive` command even if you never installed it on your system). Which will make it available only for that project. Here's also an example of a very simple project: [2] [1] https://nixos.org/download.html#nix-install-macos https://nixos.org/download.html#nix-install-macos [2] https://github.com/takeda/nix-cde/tree/master/tools/aws_assume https://github.com/takeda/nix-cde/tree/master/tools/aws_assu...
- Hackbraten 4y agoNot OP but anecdotally, this is how my workflow looks like: 1. Install pyenv to a central location of my choice, e. g. ~/.pyenv (this helps manage all those different Python versions piling up from all the isolated projects I have.) 2. Install pipenv as a stand-alone tool. Doesn’t matter which Python I’m using, I just want to have it in my PATH. 3. Now I’m ready to create fully isolated projects using pipenv. Not only does pipenv create a venv right inside my project directory for me, it also helps me manage and lock dependencies. It also talks to pyenv so it can fetch the per-project Python version for me; this is especially useful when collaborating with others on the same project; they can reliably check out the project without having to manage specific Python versions themselves. YMMV but I’ve had a stable experience using this setup so far.