3 ms·
> praying my Python and other projects survive, just because I want a browser update or a security fix. You mean you aren't familiar with Python's virtual envi
by Avamander 7y ago
> praying my Python and other projects survive, just because I want a browser update or a security fix.
You mean you aren't familiar with Python's virtual environment system exactly intended for isolating development dependencies from system ones but you're blaming the distribution. Please.
- sunaurus 7y agoNone of my virtualenvs (on Linux or on OS X) survived the 3.7 -> 3.8 upgrade. Are you saying they shouldn't have broken?
- pmontra 7y agoVirtualenv lets you use only a Python interpreter that's already installed on your system. Usually the choice is between the latest v2 and v3 interpreter, at least on Debian derivatives. Every virtualenv is autoupgraded each time the OS upgrades its Pythons. If you want to use multiple versions of Python and pin them, you should use something like asdf [1] and its Python plugin [2]. It's a version manager with support for many languages and more. I used it for Elixir, Node, PHP, Ruby and even PostgreSQL (I need different database versions in different projects.) I never used it for Python because I'm OK with being on the latest version so far. With asdf I would expect to do something like this asdf install python 3.7.5 mkdir my375project cd my375project asdf local python 3.7.5 # pick the version to use here python3 -m venv py375 --python=~/.asdf/installs/python/3.7.5/bin/python ~/.virtualenvs/py375/bin/activate This virtualenv is going to stay on 3.7.5 forever. [1] https://github.com/asdf-vm/asdf https://github.com/asdf-vm/asdf [2] https://github.com/danhper/asdf-python https://github.com/danhper/asdf-python
- rleigh 7y agoVirtualenvs don't protect you completely. If any of the modules in the virtualenv depend upon libraries on the host system, and a lot of Python modules do either directly or indirectly, then there is a chance of breakage if any of the ABIs of these modules break or there's an incompatible ABI between any of the modules. Even virtualenvs themselves can cause the breakage. Take "pylibtiff". It embeds a copy of libtiff. But, it's old and incompatible with other libraries on the base system. This can be libraries it depends upon, or it could be another copy of the same library. Either way, virtualenvs can cause more problems than they solve.