-
Notifications
You must be signed in to change notification settings - Fork 325
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
add support for pipenv #214
Comments
Pipenv is higher-level Python packaging tool officially recommended from Python.org. Pip and virtualenv are integrated into this tools and it supports Pipfile which intends to replace requirements.txt in the future. |
It's still not clear to me what changes are required in order to address this request. We don't have it packaged in RPMs, right? Would it be installed using pip and then used instead of pip? |
Yes, that's the way we would have to go. I'm not opposed to the idea, pipenv does bring some ease-of-use for developers. However, it might take some finesse to make it work here, since we're explicitly using virtualenv and pipenv wants to manage that on its own. @mcyprian Maybe you can look into it and figure out how troublesome it would be to incorporate here. If there's a clean and easy solution without bad hacks, I'm all for it. |
I agree, let's see how it could be implemented and then we can decide.. As a side-note, there can be more requirements like this that might be not easily solved in the generally available assemble script, and we'll simply need to offer users to extend functionality of the assemble scripts on their own -- one example of such functionality is #216. So, IOW, all the s2i images should have assemble script that allows extending by users. Once we have it and the pipenv support would be too messy, we can just document how to do it by extending the assemble script. |
Thanks for your comments, I will try to make something up. |
For whoever looks at this, one thing you will need to contend with is the decision that |
So Anyway, for now, the following can be used to handle a Create executable script
Create executable script
Create executable script
Create executable script
Yes you could have done it all in custom I used the |
One issue with this approach will be that |
@GrahamDumpleton Thanks for the extensive rundown! We might want to just recommend using powershift like described, but I'll leave that up to Michal. As for |
The problem with |
Ah, I was thinking people using |
I've tried a couple of different approaches and pipenv locations. The best solution in my opinion is to install pipenv to per user Python installation area before the main virtualenv is activated, pipenv will have
In case SCL pip is too old for pipenv (image <= centos/python-35-centos7) newer version will be installed to per user area and will be preferred in sys.path of SCL python binary ( |
@mcyprian So if we needed a newer pip for pipenv, we would first create the virtualenv, then update pip outside of it and install pipenv to the per user directory? I don't see a problem with this approach, so 👍 from me. |
@torsava No, newer pip is installed automatically to per user directory when we run |
Using per user Anyway, see: for related discussion of how to bootstrap |
The only possible conflict here is pip, setuptools or virtualenv and as I mentioned before, newer version of pip is installed to user site in case SCL pip can't be used by pipenv, I don't see any big problem here, but I agree that installing it to the separate venv and symlinking the executable (similar to pipsi approach) is even cleaner solution. |
Pipenv, the higher-level Python packaging can be used to manage application dependencies on user demand. Pipenv and its dependecies are sandboxed so they cannot conflict with neither system packages nor application dependencies. Resolves sclorg#214.
Thanks guys!! 👍 |
Could supporting pipenv be added? :)
The text was updated successfully, but these errors were encountered: