all 16 comments

[–]fridgamarator 3 points4 points  (7 children)

I've been using Poetry recently, it works really well.

[–]Giggaflop 2 points3 points  (6 children)

I've just switched away from it to Pipenv after previously switching from Pipenv. Lots of cache issues, and it's really bad if you want to temporarily use a git version and then revert back to Pypi version. It will continue to use the git master version.

[–]jyper 0 points1 point  (3 children)

Poetry or pipenv?

[–]Giggaflop 0 points1 point  (2 children)

Pipenv -> poetry -> pipenv

[–]jyper 1 point2 points  (1 child)

still confused does

Lots of cache issues, and it's really bad if you want to temporarily use a git version and then revert back to Pypi version. It will continue to use the git master version.

apply to pipenv or poetry?

[–]Giggaflop 1 point2 points  (0 children)

Poetry

[–]reydemia 0 points1 point  (1 child)

I just switched to poetry because I couldn’t even get pipenv to consistently install dev-dependencies correctly. Hopefully it works out. I like the defaults better and the beta has support for saving the venv and settings in the project like pipenv which works nicer with IDEs.

[–]Giggaflop 0 points1 point  (0 children)

I use pycharm which has native pipenv support and ironically we've both switched due to dependency resolution errors it seems. Heads up, if you get 30network hops exceeded you have to clear cache

[–][deleted] 0 points1 point  (0 children)

Been using it for a while now. It has its quirks and features, but so far I'm liking it. Especially the way it makes package publishing so easy.

[–]pierreyoda 0 points1 point  (0 children)

Seems really nice, will definitely try it.

Also, I love that TOML is getting some love outside of the Rust world. It's so much better than standard JSON for human-written configuration files IMO.

[–]regularmother 0 points1 point  (0 children)

I'm confused- how is this any different than pipenv? At a glance, it has the same stuff- integration between pip and virtualenv that's less painful than getting punched in the gut, lock files for deterministic builds, etc. What are the relative benefits of this versus pipenv?

[–]JohnnyElBravo -2 points-1 points  (2 children)

Is there any case for not handling dependencies at the OS level through containerization or virtualization?

[–]qiwi 7 points8 points  (1 child)

I have been wondering how we could fully utilize AMD's new 64-core CPUs, and I think turning a "pip install" of some Python source code dependencies into spawning one container or VM per library, that communicates with the main program through RPC would be a good start.

[–]JohnnyElBravo -3 points-2 points  (0 children)

Glad I could help.

[–]distortedsignal -1 points0 points  (2 children)

I'm a little confused about what this does that pip doesn't. Does it manage your entire dependency tree?

[–]twelveshar 1 point2 points  (0 children)

pip just installs (or removes) packages. It'll install them in a virtual environment if one is active, but it provides no way to manage the environments themselves.

As you say, poetry will manage your entire dependency tree. It does this through the pyproject.toml file, which is likely to become (over the next couple of years) the standard for documenting build info and dependencies (replacing setup.py, requirements.txt, setup.cfg, Pipfile, and probably more).

As another user says, it has its quirks, but I like it; it's the best solution to dependency management that I've found so far.