Hacker News new | ask | show | jobs
by epage 2805 days ago
The biggest problem I have with python packaging tools is how do I start using them. I'd rather not install all of them in my global site-packages. Do I need to create a virtualenv just to get a tool to manage my virtualenv's?

I have seen poetry is working on their bootstrapping story. I could not get their current solution to work on Ubuntu. Maybe what they are developing towards will work.

https://github.com/sdispater/poetry/issues/342

2 comments

pip install --user
I stumbled on this (--user flag) only the other day and it simplified things immensely. Too much information, various ways of doing things explained in bits and pieces over the decades makes it look confusing.

Often there is a very simple way, even in Python packaging and deploying. In my situation the easiest way began along these lines --

1. Install python3 for the local user from the source distribution (make sure you have compilers etc that the configure check lists out)

2. After compiling the sources and finishing with 'make install', make Python available in your local search path

3. And use pip with this magical --user flag as needed. No virtual env, conda, etc etc.

4. Leave HOMEPATH etc alone as this conflicts with the setup of the admin's system wide installs (when you su)

Things can go smoothly with pip alone.

Doesn't that just install into a global-to-the-user path? Isn't one of the things we're trying to avoid is conflicts between these tools. For example, pip is now more freely breaking compatibility. I now need to ensure if my different packaging tools are compatible with my version of pip all installed in my user location.
Yes, and that's fine for most folks. The one exception I make is developing a huge app at work, use a virtualenv for that to keep it separate.
pipenv --three && pipenv shell && pipenv install <package_name> and you're set
Except how do I install pipenv in the first place?

Or why do I need to use pipenv to install pipsi so pipsi can manage my virtualenv environments.