Python deployments: Difference between revisions

No edit summary
link to new page on Ansible Playbook Grapher
 
(4 intermediate revisions by the same user 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>
<source lang="bash">
<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
</source>
</syntaxhighlight>
</ref>
</ref>


Line 22: Line 43:


== Basic PIP and Virtual Environments ==
== Basic PIP and Virtual Environments ==
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</cod> to help prevent any potential confusion as to which Python interpreter a vritual environment will be based on.
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.
<source lang="bash">
 
$ python3 -m venv myenv
As an example, I needed to create a Python Virtual Environment to use the [[Ansible Playbook Grapher]]
.. some output ..
<syntaxhighlight lang="bash">
$ source myenv/bin/activate
python3.11 -m venv myenv
(myenv) $ pip install what-i-want
# .. 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?
# done using this python?
deactivate
deactivate
</source>
</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.