You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org
Several Python runtimes are available for use inside Toolforge:
python3: Python 3.5.3
python: Python 2.7.13 (2.7.9 on kubernetes)
Deprecating Python 2
Many legacy tools and code examples use Python 2.x as a runtime. Use of Python 3.x is encouraged for new code as Python 2.7 will not be maintained past 2020. Toolforge will provide some amount of support for Python 2.x through 2022 because Debian will be supporting Python 2.7 in Debian 10 (buster). This support will only extend to critical security patches however.
If you don't want to create one tool for each Python task you need specific environment for, that's when virtual environment comes handy. The advantages of virtual environments don't end there. Apart from packages you can also maintain several separated git/svn repositories, several command line profiles, etc. You basically create this small virtual unit in your folder system, set up its environment to your needs and then reach its contents when you need it.
You can create your first virtual environment using:
$ virtualenv --python=python3 my_venv
$ source my_venv/bin/activate (my_venv) $ pip install my_dream_package==7.0.3 ...
Once you are happy with it, you can always leave using:
(my_venv) $ deactivate
This way you can create as many separated Python environments as you wish.
Use venv with scheduled tasks
$ jsub -N my_task -once -quiet my_venv/bin/python3 my_script
Use your venv everywhere
You can also use your virtual environment everywhere by default. You can activate it using
$ echo "source my_venv/bin/activate" >> .profile