How can I install Ansible on Raspbian? - ansible

I would like to install Ansible on my Raspberry Pi (raspbian/jessie) so that I can maintain it. Unfortunately, I don't seem to be able to install it. I've tried APT and PIP so far but each has a hurdle.
APT
pi#retropie:~ $ sudo apt-add-repository ppa:ansible/ansible
Traceback (most recent call last):
File "/usr/bin/apt-add-repository", line 167, in <module>
sp = SoftwareProperties(options=options)
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 105, in __init__
self.reload_sourceslist()
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 595, in reload_sourceslist
self.distro.get_sources(self.sourceslist)
File "/usr/lib/python3/dist-packages/aptsources/distro.py", line 89, in get_sources
(self.id, self.codename))
aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Raspbian/jessie
PIP (Python 2.7.9, pip 1.5.6)
pi#retropie:~ $ sudo pip install ansible
Downloading/unpacking ansible
Downloading ansible-2.4.1.0.tar.gz (6.7MB): 6.7MB downloaded
no previously-included directories found matching 'ticket_stubs'
no previously-included directories found matching 'hacking'
Downloading/unpacking jinja2 (from ansible)
Downloading Jinja2-2.9.6-py2.py3-none-any.whl (340kB): 340kB downloaded
Downloading/unpacking PyYAML (from ansible)
Downloading PyYAML-3.12.tar.gz (253kB): 253kB downloaded
Running setup.py (path:/tmp/pip-build-bsUTB2/PyYAML/setup.py) egg_info for package PyYAML
Downloading/unpacking paramiko (from ansible)
Downloading paramiko-2.3.1-py2.py3-none-any.whl (182kB): 182kB downloaded
Downloading/unpacking cryptography (from ansible)
Downloading cryptography-2.1.2.tar.gz (441kB): 441kB downloaded
Running setup.py (path:/tmp/pip-build-bsUTB2/cryptography/setup.py) egg_info for package cryptography
error in cryptography setup command: Invalid environment marker: python_version < '3'
Complete output from command python setup.py egg_info:
error in cryptography setup command: Invalid environment marker: python_version < '3'
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-bsUTB2/cryptography
Storing debug log for failure in /root/.pip/pip.log
Python 3
As you can see from the above error, "cryptography" indicates it needs > python3
I looked at the installation requirements and found that you need python 3.5+ if you use 3. Rasbian comes with 3.4...
I then tried to get python 3.6 installed using a couple of ppa's (ppa:jonathonf/python-3.6 and ppa:deadsnakes/ppa) but there aren't distros available for raspbian/jessie either.
After that I started looking at pulling down and compiling python from source but I'm expecting I'll hit another hurdle.
Ugh...
In summary, does anyone have any ideas how I can get Ansible installed on a Raspberry Pi?

Slightly old question but its the first result that comes up when googling for how to install Ansible on Raspbian so thought I'd update it. If you're running stretch (or stretch-lite)
You can just do
sudo apt-get install ansible
However currently the version of Ansbile in the Raspbian repositories is 2.2 which is a little old
Following instructions (with a little modification to overcome some errors) from the Ansible installation page you can do the following:
First run
sudo apt-get install dirmngr
Edit your /etc/apt/sources.list and append
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
then run
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
sudo apt-get update
sudo apt-get install ansible
This will give you version 2.7.8 as of today.
Edited to include missing command (thanks SpacePope) and correct formatting.

Jessie was released in 2015 and is officially obsolete. Stretch is the current Raspbian repo, and it has python3.5 without adding PPAs.
You can then simply install Ansible with pip3.

Related

Pip returns 'SyntaxError: invalid syntax' when in command prompt after being upgraded; how do I fix that? [duplicate]

I am trying to use these steps with bitbucket CI to deploy an application:
script:
- apt-get update
- apt-get install -y python-dev
- curl -O https://bootstrap.pypa.io/get-pip.py
- python get-pip.py
... and a few more steps
However, the python get-pip.py step fails with this error:
Traceback (most recent call last):
File "get-pip.py", line 24226, in <module>
main()
File "get-pip.py", line 199, in main
bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 82, in bootstrap
from pip._internal.cli.main import main as pip_entry_point
File "/tmp/tmpUgc5ng/pip.zip/pip/_internal/cli/main.py", line 60
sys.stderr.write(f"ERROR: {exc}")
^
SyntaxError: invalid syntax
Why isn't it working now? Does it depend on the operating system?
For the equivalent issue with upgrading pip in old Python installations, see Upgrading pip fails with syntax error caused by sys.stderr.write(f"ERROR: {exc}").
pip 21.0 dropped support for Python 2 and 3.5. The later versions require Python 3.6+. The syntax f"" is supported by Python 3.6+.
To install pip for Python 2.7 install it from https://bootstrap.pypa.io/pip/2.7/ :
- curl -O https://bootstrap.pypa.io/pip/2.7/get-pip.py
- python get-pip.py
- python -m pip install --upgrade "pip < 21.0"
The last command is to upgrade to the latest supported version.
For Python 2.7 the latest supported is currently pip 20.3.4.
For Python 3.6 install from https://bootstrap.pypa.io/pip/3.6/
For Python 3.5 install from https://bootstrap.pypa.io/pip/3.5/
For Python 3.4 install from https://bootstrap.pypa.io/pip/3.4/
For Python 3.4 the upgrade command is
python -m pip install --upgrade "pip < 19.2"
I solved it by firstly run
python -m pip install --upgrade "pip < 19.2"
and then
python -m pip install --upgrade "pip < 21.0".
It seems reinstall my pip 20.3.4 and the error disappreared!
This worked for me:On Mac:
Install pyenv as well as upgrade your python following the instructions on this here
Then in your terminal, if you run python -V and you still get the old version(system predefined version) showing:
To resolve this:
In your terminal run: alias python=python3
Then in your terminal execute python and you should now see that your system is using the python version you installed-:That is if you followed and completed the steps Here Correctly.
Restart your terminal(close/reopen):
Now you can finally install pip:
Read more about pip instalation steps [here][3]
1:In your terminal execute :$ python -m ensurepip --upgrade
2: Download the script, from https://bootstrap.pypa.io/get-pip.py.
But..**NB**: instead of navigating to the exact link provided,check out the available versions of pip here: pipversions
Select the latest version:
Then select getpip.py link to get the file and save it into your directory on your machine:
cd into the folder where you saved the newly downloaded script and execute:
Then execute:
python get-pip.py
Pip installed successfully:
For me python 3.5 on aws ec2 below worked
curl -O https://bootstrap.pypa.io/pip/3.5/get-pip.py
Then
sudo python3.5 get-pip.pyenter image description here
I have also tried all thing but my solution was download old get-pip version and install.
download: curl -O https://bootstrap.pypa.io/2.7/get-pip.py the file get-pip.py
install: python get-pip.py or python2 get-pip.py
enjoy
This is worked on Debian systems.
Edit: A better solution is always to install a Python version that is long supported. If at all you need to work with an older version - only then must one resort to the above workaround.
Uninstall existing pip on your machine
Run this cmd in ubuntu or any linux machine
curl https://bootstrap.pypa.io/pip/3.5/get-pip.py -o get-pip.py
python3 get-pip.py
It will work

Why do I get a syntax error when I try to update pip on Terminal on mac when I use the exact command given to me by the computer? [duplicate]

I am trying to use these steps with bitbucket CI to deploy an application:
script:
- apt-get update
- apt-get install -y python-dev
- curl -O https://bootstrap.pypa.io/get-pip.py
- python get-pip.py
... and a few more steps
However, the python get-pip.py step fails with this error:
Traceback (most recent call last):
File "get-pip.py", line 24226, in <module>
main()
File "get-pip.py", line 199, in main
bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 82, in bootstrap
from pip._internal.cli.main import main as pip_entry_point
File "/tmp/tmpUgc5ng/pip.zip/pip/_internal/cli/main.py", line 60
sys.stderr.write(f"ERROR: {exc}")
^
SyntaxError: invalid syntax
Why isn't it working now? Does it depend on the operating system?
For the equivalent issue with upgrading pip in old Python installations, see Upgrading pip fails with syntax error caused by sys.stderr.write(f"ERROR: {exc}").
pip 21.0 dropped support for Python 2 and 3.5. The later versions require Python 3.6+. The syntax f"" is supported by Python 3.6+.
To install pip for Python 2.7 install it from https://bootstrap.pypa.io/pip/2.7/ :
- curl -O https://bootstrap.pypa.io/pip/2.7/get-pip.py
- python get-pip.py
- python -m pip install --upgrade "pip < 21.0"
The last command is to upgrade to the latest supported version.
For Python 2.7 the latest supported is currently pip 20.3.4.
For Python 3.6 install from https://bootstrap.pypa.io/pip/3.6/
For Python 3.5 install from https://bootstrap.pypa.io/pip/3.5/
For Python 3.4 install from https://bootstrap.pypa.io/pip/3.4/
For Python 3.4 the upgrade command is
python -m pip install --upgrade "pip < 19.2"
I solved it by firstly run
python -m pip install --upgrade "pip < 19.2"
and then
python -m pip install --upgrade "pip < 21.0".
It seems reinstall my pip 20.3.4 and the error disappreared!
This worked for me:On Mac:
Install pyenv as well as upgrade your python following the instructions on this here
Then in your terminal, if you run python -V and you still get the old version(system predefined version) showing:
To resolve this:
In your terminal run: alias python=python3
Then in your terminal execute python and you should now see that your system is using the python version you installed-:That is if you followed and completed the steps Here Correctly.
Restart your terminal(close/reopen):
Now you can finally install pip:
Read more about pip instalation steps [here][3]
1:In your terminal execute :$ python -m ensurepip --upgrade
2: Download the script, from https://bootstrap.pypa.io/get-pip.py.
But..**NB**: instead of navigating to the exact link provided,check out the available versions of pip here: pipversions
Select the latest version:
Then select getpip.py link to get the file and save it into your directory on your machine:
cd into the folder where you saved the newly downloaded script and execute:
Then execute:
python get-pip.py
Pip installed successfully:
For me python 3.5 on aws ec2 below worked
curl -O https://bootstrap.pypa.io/pip/3.5/get-pip.py
Then
sudo python3.5 get-pip.pyenter image description here
I have also tried all thing but my solution was download old get-pip version and install.
download: curl -O https://bootstrap.pypa.io/2.7/get-pip.py the file get-pip.py
install: python get-pip.py or python2 get-pip.py
enjoy
This is worked on Debian systems.
Edit: A better solution is always to install a Python version that is long supported. If at all you need to work with an older version - only then must one resort to the above workaround.
Uninstall existing pip on your machine
Run this cmd in ubuntu or any linux machine
curl https://bootstrap.pypa.io/pip/3.5/get-pip.py -o get-pip.py
python3 get-pip.py
It will work

Pytorch installation issue under Anaconda

I followed the link here to install fastai library using pip install git+https://github.com/fastai/fastai.git
It gave me the following error message. These messages keep the same even I installed Pytorch successfully using conda install pytorch-cpu -c pytorch
and pip3 install torchvision. What can be the reason?
Collecting torch<0.4 (from fastai==0.7.0)
Using cached https://files.pythonhosted.org/packages/5f/e9/bac4204fe9cb1a002ec6140b47f51affda1655379fe302a1caef421f9846/torch-0.1.2.post1.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\shuxi\AppData\Local\Temp\pip-install-7sjptuad\torch\setup.py", line 11, in <module>
raise RuntimeError(README)
RuntimeError: PyTorch does not currently provide packages for PyPI (see status at https://github.com/pytorch/pytorch/issues/566).
Please follow the instructions at http://pytorch.org/ to install with miniconda instead.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\shuxi\AppData\Local\Temp\pip-install-7sjptuad\torch\
To fix this, do:
$ pip install --upgrade git+https://github.com/fastai/fastai.git
OR
$ pip install --no-cache-dir git+https://github.com/fastai/fastai.git
Your command probably failed because you have installed a old version of torch (0.1.2) some time ago. pip was not supported for torch install for that version and pip instead redirected the user to open pytorch.org in the browser. In your case, pip is reusing this cached package. --upgrade forces pip to choose latest version of all depending packages.

Getting "ImportError: No Module named yaml" error

Computer: MacBook Pro mid 2012, running El Capitan 10.11.4
Python version 2.7.10
I've been trying to install ansible from source, and I've run these two commands (following the steps on ansibles documentation):
git clone git://github.com/ansible/ansible.git --recursive
cd ./ansible
and then ran this
source ./hacking/env-setup
I've also already installed these packages
sudo pip install paramiko PyYAML Jinja2 httplib2 six
However, if I try and run ansible by typing it in the terminal, I get the following error.
Traceback (most recent call last):
File "/Users/[myusr]/rock/ansible/bin/ansible", line 81, in <module>
from ansible.cli.adhoc import AdHocCLI as mycli
File "/Users/[myusr]/rock/ansible/lib/ansible/cli/__init__.py", line 27, in <module>
import yaml
ImportError: No module named yaml
What should be done here?
Do you have yaml module installed? If not, try installing yaml using the following command:
sudo pip install pyyaml
Had the same issue. Got past it using #FranMowinckel's answer.
First I typed:
pip --version
it outputted python 3. But, when I tried:
sudo python -m pip install pyyaml
I got an error saying:
Error: No module named pip
So, finally running:
sudo easy_install pip
everything worked fine.
Go back and run:
sudo python -m pip install pyyaml
(you may have to run this with all the other modules as well)
Now you should finally be able to run your initial command which failed.
For python 3.6 you can install it with
pip3 install pyyaml
if there is a problem in importing, do
pip3 uninstall pyyaml
and then install it again:
pip3 install pyyaml
#bigdata2's answer is correct but it might also happen that there's a conflict with python 3. So, check pip version (pip --version) and if it outputs python 3 then:
sudo python -m pip install pyyaml
So it gets installed for the same version as python.
I had this problem because I installed it with
sudo pip install pyyaml --upgrade
instead of
sudo -H pip install pyyaml --upgrade
Uninstalling and re-installing pyyaml fixed the problem for me.
This should work:
sudo pip install pyyaml
Try this
pip install ruamel.yaml

Why is PIP raising an AssertionError on pip freeze?

My console:
desarrollador#desarrollador-HP-14-Notebook-PC1:~$ pip freeze
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 126, in main
self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 68, in run
req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 156, in from_dist
assert len(specs) == 1 and specs[0][0] == '=='
AssertionError
I installed the tornado package and this happened since. How can I fix it?
This worked for me (running Ubuntu, both 12 and 14 LTS):
pip install -U setuptools
pip install -U pip
Upgrade to the latest version of setuptools in order to be able to upgrade to the latest version of pip, and upgrade to the latest version of pip to get a version that has fixed the AssertException error.
Reason: The python-pip package in Ubuntu 12.04 is seriously outdated and has some bugs with certain package names (as I can see) and cannot parse them correctly.
Solution: install a newer version of pip, via easy_install.
Your pip may be outdated. Even in Ubuntu 14.04 LTS, the pip version it installed using apt-get install python-pip was 1.5.4. Try updating pip manually, and possibly the new packages again as well.
pip --version # 1.5.4
curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
pip --version # 6.0.8
hash -r # reset bash cache
https://pip.pypa.io/en/latest/installing.html
I found the solution at this link.
pip install setuptools==7.0
First, I ran Martin Mohan's solution:
/usr/local/bin/pip uninstall pip
apt-get remove python-pip
apt-get install python-pip
Then, boredcoding's ultimately fixed the problem, both solutions are found near bottom of thread: I screwed up the system version of Python Pip on Ubuntu 12.10
$apt-get install python-pip
$which pip
/usr/bin/pip
$pip install -U pip
$which pip
/usr/bin/pip
$hash -r
$which pip
/usr/local/bin/pip
The logic behind these two fix are stated in the thread (linked above), so I will refrain from going into each here.
The problem is due to an old version of pip being installed.
Run the following command to install a new version of pip:
sudo easy_install -U pip.
It may be a bit late, but one thing I found was there are 2 or three versions of pip installed (depending on what you installed)
pip - the OS version installed, freeze doesn't work and it can be out of date
pip2 - the newer one installed but upgrading pip via pip etc
pip3 - installed if you have python3 and python2 installed at the same time.
You can either change which pip gets used in $PATH, or do what I did:
pip2 freeze (which does work on ubuntu14 if you have more than one option for python)

Resources