Re:Python Is Eating the World
by icebraining on Monday August 12, 2019 @04:07AM
(#20673460)
Not trying to defend Python, but it's not hard to make it work like JS without virtualenv:
pip install -r requirements.txt --target=python_modules
Then to run: PYTHONPATH=python_modules python myscript.py
This will keep all the dependencies in the local "python_modules" directory. I've used this on a custom SaaS platform, and it worked quite well.Also, that's more or less what virtualenv does. It would be nice if this was default, but IIRC it's coming.
Re:Python Is Eating the World
by mark_l_watson on Monday August 12, 2019 @08:35AM
(#20674801)
Thanks for that! I am tired of messing with conda, virtualenv, etc. and since I use simple Makefiles to build and run most of my code, I can easily stick with the standard latest stable version Python installation when using your trick.
EDIT: a question: when I have to use Python, I like to break up my code into small libraries and make wheel files for my own use. How do you handle your own libraries? Do you have one special local directory that you build wheel files to and then reference that library in your requirements.txt files?
Re:Python Is Eating the World
by icebraining on Monday August 12, 2019 @10:33AM
(#20675750)
> How do you handle your own libraries? Do you have one special local directory that you build wheel files to and then reference that library in your requirements.txt files?
We didn't build wheels. We had a centralized git host (Gitlab, but any of them works) with all our libraries, and just added the git url (git+https://...) to the requirements.txt
Re:Python Is Eating the World
by mark_l_watson on Monday August 12, 2019 @03:43PM
(#20679163)
Even better, thanks.
In JS, which also has a single interpreter installed across the system (or multiple if you use nvm), the packages aren't installed "directly" into the interpreter, which removes the need for things like virtual-envs, thus making life a lot easier. I wish Python did something like this.
That being said, pipenv is making things easier. However, I think pipenv is a workaround more fundamental problems.