Python deployments: Difference between revisions
brief updates for 2017 |
link to new page on Ansible Playbook Grapher |
||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
== Check Python == | |||
Check the version of the default Python interpreter: | |||
<code>python --version</code> | |||
List the versions of python available: | |||
<code>ls /usr/bin/python*</code> | |||
Use <code>update-alternatives</code> to setup system-wide ability to choose Python interpreter. The one with the '''higher''' priority number will become the default.<br> | |||
<code>update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1</code><br> | |||
<code>update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2</code> | |||
Now we can list the choices: | |||
<code>update-alternatives --list python</code> | |||
And choose one: | |||
<code>update-alternatives --config python</code> | |||
We can also remove a choice if it's no longer an option on the system: | |||
<code>update-alternatives --remove python /usr/bin/python2.7</code> | |||
== Python Virtual Environments == | |||
See Digital Ocean's quick guide to [https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming-environment-on-ubuntu-16-04 setting up a local Python programming environment], including [https://virtualenv.pypa.io/en/stable/ virtual environments], which is what I did for [https://github.com/Miserlou/SoundScrape SoundScrape] Btw, SoundScrape is a neat tool to download sound files from SoundCloud. | See Digital Ocean's quick guide to [https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming-environment-on-ubuntu-16-04 setting up a local Python programming environment], including [https://virtualenv.pypa.io/en/stable/ virtual environments], which is what I did for [https://github.com/Miserlou/SoundScrape SoundScrape] Btw, SoundScrape is a neat tool to download sound files from SoundCloud. | ||
<ref> | <ref> | ||
< | <syntaxhighlight lang="bash"> | ||
cd | cd | ||
mkdir environments | mkdir environments | ||
| Line 11: | Line 32: | ||
pip install soundscrape --upgrade | pip install soundscrape --upgrade | ||
soundscrape https://soundcloud.com/pianoman_weddings/coldplay | soundscrape https://soundcloud.com/pianoman_weddings/coldplay | ||
</ | </syntaxhighlight> | ||
</ref> | </ref> | ||
| Line 21: | Line 42: | ||
In the old days (2015) there were still debates about how to package Python and install stuff. Now, it's settled. Use pip. Easy_install is dead. See the [https://docs.python.org/3/installing/index.html docs]. Also note that <code>venv</code> is the successor to <code>virtualenv</code> | In the old days (2015) there were still debates about how to package Python and install stuff. Now, it's settled. Use pip. Easy_install is dead. See the [https://docs.python.org/3/installing/index.html docs]. Also note that <code>venv</code> is the successor to <code>virtualenv</code> | ||
== Basic PIP == | == Basic PIP and Virtual Environments == | ||
Do NOT (normally) use sudo with pip. Use a virtual environment | Do NOT (normally) use sudo with pip. Use a virtual environment. As of Python 3.4, the command is now called <code>pyvenv</code> or simply <code>venv</code>. As of Python 3.6 <code>pyvenv</code> is '''deprecated''' in favor of using <code>python3 -m venv</code> to help prevent any potential confusion as to which Python interpreter a virtual environment will be based on. '''python3''' is not generic. It represents the '''exact''' version you wish to use in your virtual environment. | ||
< | |||
As an example, I needed to create a Python Virtual Environment to use the [[Ansible Playbook Grapher]] | |||
.. some output .. | <syntaxhighlight lang="bash"> | ||
python3.11 -m venv myenv | |||
# .. some output .. | |||
</ | source myenv/bin/activate | ||
# maybe upgrade pip | |||
pip install --upgrade pip | |||
# then install your local environment packages | |||
pip install what-i-want | |||
# done using this python? | |||
deactivate | |||
</syntaxhighlight> | |||
You only use sudo or elevated permissions when you want to install stuff for the global, system-wide Python installation. | You only use sudo or elevated permissions when you want to install stuff for the global, system-wide Python installation. | ||