6 ms·
Python packaging seems pretty painful compared to what I've experienced with, say, Clojure (list dependencies in project.clj, done), but that seems like an unfa
by MBlume 11y ago
Python packaging seems pretty painful compared to what I've experienced with, say, Clojure (list dependencies in project.clj, done), but that seems like an unfair comparison. It's really common for Python projects to bind to C libraries for heavy lifting, while this is pretty uncommon in Java-land. Is there another language that makes heavy use of the C-lib-binding pattern which has a much more pleasant packaging experience than Python? Does Ruby, for example?
- e12e 11y agoRuby does not (IMNHO) have a more pleasant packaging experience, no (although, the inverse may be true - I think writing a proper gem -- and listing/uploading it -- is probably easier than a proper python package, and pushing that to pypi). Python's virtualenv is a lot more stable than the various hoops one goes through with eg rvm. On the other hand, if you needed/wanted to use more than python2.7/python3.4 -- it might be a bit harder to juggle many python versions than it is to juggle many ruby versions with rvm.
- Nullabillity 11y agoI thought virtualenv was more comparable to bundler than rvm?
- e12e 11y agoYes, that's probably right. But is there a good way to have several instances of say, ruby2.2 but with a different gemset outside of nvm?
- e12e 11y agoProbably the main difference is that you rarely really need "many" versions of python -- and hopefully one won't really need "many" versions of ruby (as much) any more either. So the problem bundler/venv solves becomes a solution to 95% of the entire problem, rather than just 50%.
- mpdehaan2 11y agotake a look at a requirements.txt file for your python project, you can install everything dep-wise in a one liner.