How to install TensorFlow on Raspberry Pi 2 - python

I'm trying to install TensorFlow on a Raspberry Pi 2 with Raspian Lite OS installed on and a 8 Gb SD card. I'm using Python version 2.7.9 and I'm trying to install TensorFlow for it.
I previously searched and tried to solve the problem by me but couldn't do it.
Already followed these guides:
TensorFlow Official Guide
IotMakerBlog guide
Sam J Abrahams guide on GitHub
I have also read a lot of solutions proposed in some other Stack Overflow questions, but the problem is always the same:
tensorflow-1.1.0-cp27-none-linux_armv7l.whl is not a supported wheel on this platform.
This happens everytime I try to download the .whl and use pip to install it. Moreover, if I try to use pip directly, the error I get is the following:
# pip install tensorflow
Collecting tensorflow
Could not find a version that satisfies the requirement tensorflow (from versions: )
No matching distribution found for tensorflow
I also tried with pip2 as suggested in some guides and I also tried to install the Python 3 version. The result is the same as here.
Could anyone help me? Many thanks.

At the end I found that the problem was the processor. Indeed, with Raspbian it is considered to be ARMv6 but it is ARMv7. So, changing OS to Ubuntu MATE did the trick. Now I have installed TensorFlow on my Pi.

You can follow this:
First, install the dependencies for TensorFlow:
sudo apt-get update
# For Python 2.7
sudo apt-get install python-pip python-dev
# For Python 3.3+
sudo apt-get install python3-pip python3-dev
Next, download the wheel file from this repository and install it:
# For Python 2.7
wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v1.1.0/tensorflow-1.1.0-cp27-none-linux_armv7l.whl
sudo pip install tensorflow-1.1.0-cp27-none-linux_armv7l.whl
# For Python 3.4
wget https://github.com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/v1.1.0/tensorflow-1.1.0-cp34-cp34m-linux_armv7l.whl
sudo pip3 install tensorflow-1.1.0-cp34-cp34m-linux_armv7l.whl
Finally, we need to reinstall the mock library to keep it from throwing an error when we import TensorFlow:
# For Python 2.7
sudo pip uninstall mock
sudo pip install mock
# For Python 3.3+
sudo pip3 uninstall mock
sudo pip3 install mock
See more details from tensorflow-on-raspberry-pi.

#all, I noticed that you were trying to have tensorflow running on Raspberry Pi 2. If you are willing to try tensorflow lite on Raspberry Pi 3 as well, my "pull-request" may be useful. My contribution is at https://github.com/tensorflow/tensorflow/pull/24194.
Following my steps, 2 apps to get your own development started, label_image and camera, can run on Raspberry Pi 3.
Best,
--Jim

Miniconda (Anaconda) can install python 3.4 with a version of pip that can upgrade to the latest pip which can install tensorflow-1.11.0-cp34 as well as keras wheels for the Arm processor:
wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-armv7l.sh
bash Miniconda3-latest-Linux-armv7l.sh
pip install --upgrade pip
pip install tensorflow keras

Related

Unable to install pandas or other packages in linux virtual environment

I am unable to install module pandas in my linux vm. I tried all ways to install it, but it says it has version 1.1.5 requirement already satistied. But when I try running the code, it says, no module found. The latest version of python in it is 2.7.3, but I want to install 3.8 or 3.7, but I'm unable to. Where am I going wrong?
Did you try installing python3 from your package manager? You can install python 3.9 from apt using the below command
apt install python3 pip -y
You can also install the below package to use python in the terminal instead of python3 every time
apt install python-is-python3 -y
I cant comment yet so using the answer section, kindly give me an upvote so I can start using the comment feature, sorry for the trouble

How to install matplotlib on python3.4 raspberry pi

I am trying to install matplotlib on python3.4 (the default version on raspberry pi) via pip3 but the installation always fails.
I have tried installing python3.7 but pip3 defaults to installing on python3.4 and I don't know how to change that.
The error message I constantly get is " Beginning with Matplotlib 3.1, Python 3.6 or above is required.". How do I update my python on the pi or install it on python3.4?
Any help appreciated.
Having just looked at older releases ( https://pypi.org/project/matplotlib/#history ), I think 2.2.4 was the last version to work on Python 3.4
You can install a specific version of the library using the command
pip install matplotlib==2.2.4
Use the package manager of the distribution :
sudo apt install python3-matplotlib
The dependencies should be OK there.
You can just use
sudo pip3 install matplotlib
or for a local instlal of the lib
pip3 install --user <your_username> matplotlib

Could not find a version that satisfies the requirement tensorflow

I installed the latest version of Python (3.6.4 64-bit) and the latest version of PyCharm (2017.3.3 64-bit). Then I installed some modules in PyCharm (Numpy, Pandas, etc), but when I tried installing Tensorflow it didn't install, and I got the error message:
Could not find a version that satisfies the requirement TensorFlow (from versions: )
No matching distribution found for TensorFlow.
Then I tried installing TensorFlow from the command prompt and I got the same error message.
I did however successfully install tflearn.
I also installed Python 2.7, but I got the same error message again. I googled the error and tried some of the things which were suggested to other people, but nothing worked (this included installing Flask).
How can I install Tensorflow? Thanks.
The latest requirements for running TensorFlow are documented in the installation documentation.
TensorFlow only supports 64-bit Python
TensorFlow only supports certain versions of Python (for example, Python 3.6 is not supported)
So, if you're using an out-of-range version of Python (older or newer) or a 32-bit version, then you'll need to use a different version.
I installed it successfully by pip install https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.8.0-py3-none-any.whl
There are a few important rules to install Tensorflow:
You have to install Python x64. It doesn't work with x86/32b and it gives the same error as yours.
Python versions later than 3.8 and Python 3.8 requires TensorFlow 2.2 or later. Check for supported Python versions.
For example, for TensorFlow 2.9, you can install Python3.8.6-64bit and it works like a charm. Check the latest information on the website.
if you are using anaconda, python 3.7 is installed by default, so you have to downgrade it to 3.6:
conda install python=3.6
then:
pip install tensorflow
it worked for me in Ubuntu.
I am giving it for Windows
If you are using python-3
Upgrade pip to the latest version using py -m pip install --upgrade pip
Install package using py -m pip install <package-name>
If you are using python-2
Upgrade pip to the latest version using py -2 -m pip install --upgrade pip
Install package using py -2 -m pip install <package-name>
It worked for me
Tensorflow 2.2.0 supports Python3.8
First, make sure to install Python 3.8 64bit. For some reason, the official site defaults to 32bit. Verify this using python -VV (two capital V, not W). Then continue as usual:
python -m pip install --upgrade pip
python -m pip install wheel # not necessary
python -m pip install tensorflow
As usual, make sure you have CUDA 10.1 and CuDNN installed.
Tensorflow isn't available for python 3.8 (as of Dec 4th 2019) according to their documentation page. You will have to downgrade to python 3.7.
I am using python 3.6.8, on ubunu 18.04, for me the solution was to just upgrade pip
pip install --upgrade pip
pip install tensorflow==2.1.0
Uninstalling Python and then reinstalling solved my issue and I was able to successfully install TensorFlow.
Python version is not supported
Uninstall python
https://www.python.org/downloads/release/python-362/
You should check and use the exact version in install page.
https://www.tensorflow.org/install/install_windows
python 3.6.2 or python 3.5.2 solved this issue for me
So here's the message that I got on a M1 Pro while I was executing
python -m pip install tensorflow-macos
ERROR: Could not find a version that satisfies the requirement tensorflow (from versions: none)
ERROR: No matching distribution found for tensorflow
I then re-installed python from the official source:
https://www.python.org/downloads/macos/
(Yes, as stupid as it seems.)
I then followed the Apple tutorial for Monterey:
https://developer.apple.com/metal/tensorflow-plugin/
Everything was solved by then.
(as of Jan 1st, 2021)
Any over version 3.9.x there is no support for TensorFlow 2. If you are installing packages via pip with 3.9, you simply get a "package doesn't exist" message. After reverting to the latest 3.8.x. Thought I would drop this here, I will update when 3.9.x is working with Tensorflow 2.x
Apple Silicon (M1+ Chip)
If you are using a Mac with an M1 chip or higher, you need to install Tensorflow metal plugin for compatability with your architecture.
Simple installation instructions for Tensor Flow are found on Apple's website: https://developer.apple.com/metal/tensorflow-plugin
Looks like the problem is with Python 3.8. Use Python 3.7 instead. Steps I took to solve this.
Created a python 3.7 environment with conda
List item Installed rasa using pip install rasa within the environment.
Worked for me.
Running this before the tensorflow installation solved it for me:
pip install "pip>=19"
As the tensorflow's system requirements states:
pip 19.0 or later
For version TensorFlow 2.2:
Make sure you have python 3.8
try:
python --version
or
python3 --version
or
py --version
Upgrade the pip of the python which has version 3.8
try:
python3 -m pip install --upgrade pip
or
python -m pip install --upgrade pip
or
py -m pip install --upgrade pip
Install TensorFlow:
try:
python3 -m pip install TensorFlow
or python -m pip install TensorFlow
or py -m pip install TensorFlow
Make sure to run the file with the correct python:
try:
python3 file.py
or python file.py
or py file.py
1.Go to https://www.tensorflow.org/install/pip website and look if the version you are using support the Tensorflow. some latest version does not support Tesnsorflow. until Tensorflow releases its latest version for that Python version.
you must have 64 bit python installed
have latest version of pip installed
pip install --upgrade pip
using pip install tensorflow --user did it for me
I had this problem on my macOS (with M1 Pro) even with the latest 64-bit Python and the latest pip installed. This is how I've solved it. Try to run:
pip install tensorflow-macos
If you will get the error ending like this (like I did)...
...
raise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
...then simply run:
pip install --default-timeout=100 tensorflow-macos
Tensorflow seems to need special versions of tools and libs.
Pip only takes care of python version.
To handle this in a professional way (means it save tremendos time for me and others)
you have to set a special environment for each software like this.
An advanced tool for this is conda.
I installed Tensorflow with this commands:
sudo apt install python3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
sudo apt install python3-pip
sudo apt-get install curl
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh > Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
yes
source ~/.bashrc
installs its own phyton etc
nano .bashrc
maybe insert here your proxies etc.
conda create --name your_name python=3
conda activate your_name
conda install -c conda-forge tensorflow
check everything went well
python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"
PS: some commands that may be helpful
conda search tensorflow
https://www.tensorflow.org/install/pip
uses virtualenv. Conda is more capable. Miniconda ist sufficient; the full conda
is not necessary
use python version 3.6 or 3.7 but the important thing is you should install the python version of 64-bit.
In case you are using Docker, make sure you have
FROM python:x.y.z
instead of
FROM python:x.y.z-alpine.
This issue also happens with other libraries such as matplotlib(which doesn't support Python > 3.9 for some functions) let's just use COLAB.
Slightly different issue for me but I will still post an answer here. tensorflow package is working, but not tflite-runtime.
pip install --extra-index-url https://google-coral.github.io/py-repo/ tflite-runtime==2.5.0
I solved the same problem with python 3.7 by installing one by one all the packages required
Here are the steps:
Install the package
See the error message:
couldn't find a version that satisfies the requirement -- the name of the module required
Install the module required.
Very often, installation of the required module requires the installation of another module, and another module - a couple of the others and so on.
This way I installed more than 30 packages and it helped. Now I have tensorflow of the latest version in Python 3.7 and didn't have to downgrade the kernel.

How to fix the error "QObject::moveToThread:" in opencv in python?

I am using opencv2 in python with the code
import cv2
cv2.namedWindow("output", cv2.WINDOW_NORMAL)
cv2.imshow("output",im)
cv2.resizeWindow('output', 400,400)
cv2.waitKey(0)
cv2.destroyAllWindows()
I have the error as
QObject::moveToThread: Current thread (0x1d2c9cf0) is not the object's thread (0x1d347b20).
Cannot move to target thread (0x1d2c9cf0)
I debug and found that it happened when I use cv2.waitKey(0). How should I fix it? Thanks
Update: I am using 3.3.0.0. If I use older version, I have error
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvDestroyAllWindows, file /io/opencv/modules/highgui/src/window.cpp, line 577
Traceback (most recent call last):
File "tools/demo_handbone.py", line 220, in <module>
demo(net, im_name)
File "tools/demo_handbone.py", line 159, in demo
cv2.destroyAllWindows()
cv2.error: /io/opencv/modules/highgui/src/window.cpp:577: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvDestroyAllWindows
I got same problem, it was from opencv-python version problem for me.
My Linux machine's environment is as following:
$ cat /etc/lsb-release
...
DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS"
$ date
Tue Aug 11 11:43:16 KST 2020
$ python --version
Python 3.7.8
$ pip list|grep Qt
PyQt5 5.15.0
PyQt5-sip 12.8.0
$ pip list|grep opencv-python
opencv-python 4.3.0.38
I downgraded opencv-python 4.3.0.38 to 4.3.0.36.
$ pip uninstall opencv-python
$ pip install opencv-python==4.3.0.36
$ pip list|grep opencv-python
opencv-python 4.3.0.36
First, uninstall any versions of OpenCV you may have installed. If you installed using pip:
sudo pip uninstall opencv-python
Next, try installing OpenCV using your Linux distro's package manager. For Ubuntu/Debian, this is:
sudo apt-get install libopencv-dev python-opencv
This can happen if you are using an Anaconda virtual environment and did both conda install pyqt(1) and pip install opencv-python. This creates a conflict between the two PyQt versions (opencv-python ships with its own) and causes the errors.
The solution is to install PyQt via pip, i.e. pip install PyQt5.
(1) Or anything that depends on pyqt, e.g. conda install matplotlib.
I was able to fix this problem by installing new pyqt.
if you are using anaconda, just write down below:
$ conda install pyqt
I solved this issue and I posted my solution in related issue on OpenCV github page. But for your convenience, I will post it here also.
In my case, I did almost all the solutions:
installing using pip3 install opencv-python
installing using apt install python-opencv
I followed #areche solution, I end up with kdelibs5-plugins which was an important module for most of my desktop environments, so I give up on uninstalling it.
Finally, I found a solution for my case
pip uninstall opencv-python on all instances of my python and virtual environments
pip3 uninstall opencv-python on all instances of my python and virtual environments
sudo apt remove python-opencv
then I downloaded the most recent opencv, in my case opencv-4.1.1 , I build it.
for building :
mkdir build; cd build; ccmake ..
then I pressed pressed c, again pressed c, then pressed g to generate make files, then
sudo make -j8
after successful building, I copied build\lib\python3\cv2.cpython.xxxxxx.so to usr/local/lib/python3.5/dist-packages/ and renamed it to cv2.so
Do the same for each virtualenv that you have. ( I'm not sure if it is logical, but it worked for me).
then everything worked fine without any error.
Just reinstall opencv-python lib, it's OK.
pip uninstall opencv-python
pip install opencv-python=4.2.0.34
The version 4.2 is the latest opencv python that don't throw this error. I tried 4.3 or 4.4 +, it's don't work.
The main reason of this question may be the confliction between PyQt5 and Opencv.
refer to: https://blog.csdn.net/flyfor2013/article/details/110132458
pip3 uninstall opencv-python
pip3 install opencv-python==4.1.1.26
when I downgrade opencv-python 4.5 -> 4.1.1.26 then Ok
pip3 >= 20.3 use: pip3 install --use-deprecated=legacy-resolver opencv-python==
pip3 >= 9.0 use: pip3 install opencv-python==
and I try
pip3 uninstall opencv-python
pip3 install opencv-python==4.3.0.36
Ok, too
The openCv author says that this problem comes from different Qt versions in openCv and the linux distro. That is: openCv comes with Qt4, but Qt5 is already installed.
This problem is due to the conflict between opencv-python's own Qt5 and the one used by other packages. In my case, matplotlib is installed via conda, then pyqt is also installed as a matplotlib's dependency. My solution is as follows:
Uninstall matplotlib: conda remove matplotlib
Install opencv-python and matplotlib: pip install matplotlib opencv-python
Now, matplotlib installed via pip doesn't require pyqt and the conflict is solved.
Note: The latest version 4.5.4.x gets error with python 3.9, consider using lower version such as 4.5.1.x in this case.
The issue is with OpenCV version, The following version solved all issues for me.
pip uninstall opencv-python
pip install opencv-python==4.1.2.30
I am using - Python 3.8.5 with conda
I tried with upgrading pyqt too but it didn't work
I tried the above mentioned method and could get opencv module working for my project which uses python3.x interpreter.
After performing few experiments, i got it working by doing the below steps:
1) Install opencv-python in your machine using:
sudo pip3 install opencv-python
2) On the python3.x terminal find the version:
>>> import cv2
>>> cv2.__version__
'3.4.1'
3) Get the same version of OpenCV from their official page.
4) Perform the CMake settings as mentioned in opencv tutorial.
Note the location specified in PYTHON3_PACKAGES_PATH
5) Once build has been performed, got to the install location specified in PYTHON3_PACKAGES_PATH. Move the library named cv2.cpython-*-gnu.so to the current python3.x dist-packages path:
usr/local/lib/python3.5/dist-packages/cv2
6) Reload your python3 project and try again!
This problem not present if runing opencv without virtualenviroment.
My system:
Kbuntu 18.04 LTS
GTX 1050
CUDA 9.2
Tensorflow 1.9
I had the same problem when i tried to run a detectron2 demo. My OS is Centos7 and i
uninstall some applications about qt.
find applications about qt.
yum list installed |grep qt
remove applications
yum -y remove xxx...
This error occurs in higher versions of openCv like 4.3.0.38 or higher, i tried 4.3.0.36 version with pip and this problem solved for me, but in lower version i were facing lots of problems, like window not loading correctly,If are using Ubuntu i would recommend you to uninstall opencv from your system completely and try to reinstall with command given below,
pip install opencv-contrib-python3
It is the compatibility issue. Even the way of "conda install install pyqt" does work. Please make sure that you can install the opencv libraries with the specific versions. Higher versions may incur the same issues.
pip install opencv-python==4.1.1.26
pip install opencv-contrib-python==4.1.1.26
Cheers,
I had the same problem and I did not find any solution. By trial and error, I found that my OpenCV version is corrupted. As a result, I deleted it and install a new fresh one. You can use one of these two options:
1. Terminal
run brew uninstall opencv3 to uninstall opencv
then install it using sudo apt-get install libopencv-dev python-opencv command.
2. Anaconda
Actually, I used this method for my own problem.
open anaconda
go to the environment section and select your environment as follow:
then click on installed and search for opencv:
select opencv package and uninstall it. then try to re-install opencv by selecting not installed and searching for opencv. be careful to install the correct version.
In my application I wanted to use PyQt without any of opencv's GUI functionality, so the solution was to remove my current vertion of opencv-python, then instead pip install opencv-python-headless (or opencv-contrib-python-headless if you prefer). That way, opencv would be installed without its conflicting Qt library.
See: https://github.com/opencv/opencv-python#installation-and-usage
Downgrade the python version from 3.9.13 to 3.8.10
conda install python=3.8.10
pip install opencv-python==4.5.2.54
worked for me.
My system environment: Ubuntu 20.04 Anaconda 3.8
I was used matplotlib to display images and face this problem.
pip install opencv-python-headless not work for me.
pip uninstall pyqt5 then pip install pyqt5==5.12 and it works well.
The answer of #Mateen works great if you have Ubuntu version 17 and above. For Ubuntu 16, it's better to compile from sources your opencv python. As #Varun mentioned, follow the opencv tutorial. However, to successfully compile opencv with python 3 I have to add some flags in cmake command:
cmake -DCMAKE_BUILD_TYPE=RELEASE -DPYTHON_DEFAULT_EXECUTABLE=$(which python3) -DPYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.5m/ -DPYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.5/dist-packages/numpy/core/include/ ..
Hope that will be helpful.
I fixed this under Ubuntu 18.04 LTS by uninstalling any OpenCV packages from pip and apt and installing OpenCV directly from source. Maybe this tutorial will help:
https://www.pyimagesearch.com/2018/08/15/how-to-install-opencv-4-on-ubuntu/
I don't know why, but installation of matplotlib solved for me the problem with the error
QObject::moveToThread: Current thread (0x1d2c9cf0) is not the object's thread (0x1d347b20).
Cannot move to target thread (0x1d2c9cf0)
I emphasize that I prepared fresh conda environment where matplotlib was installed. Opencv was installed by pip in conda env as follow pip install opencv-python opencv-contrib-python.
I followed the solution suggested by #Varun and it worked for me (using Python 3).
However, I didn't install the built files, as I do not have the admin rights on the system where I need the cv package. A cmake, followed by make was enough, I then took the cv2.*.gnu file from ../build/lib/python3 folder and replaced the one in the site-packages/cv2 folder of my virtual environment
I had the same problem. Using opencv imshow function raised the moving thread error. Eventually, I found that Ubuntu 16.04 has a preinstalled pyqt5 while OpenCV needs pqty4.
Therefore, this may be caused by conflicting installations of Qt libraries. The following command fixed it for me:
sudo apt-get remove libqt5x11extras5 libqt5x11extras5-dev
I know the thread is a bit old but posting for anyone else out there, I faced the same problem and it was because even after running
pip3 uninstall opencv-python
there was another version of open-cv in my system which I checked by
pip list
(I'm guessing that pip only removes the first version it finds)
So I ran this command again
pip3 uninstall opencv-python
And now simply installing opencv by
pip install opencv-python
worked for me.
In case you are using matplotlib, see this answer: https://stackoverflow.com/a/49887744/13268880
TL;DR: matplotlib.use('Agg')
This may be caused by conflicting installations of Qt libraries. The following command fixed it for me:
sudo apt-get remove libqt5x11extras5 libqt5x11extras5-dev

Installing MoviePy for Python 3.2 with pip

I am trying to install the Python module MoviePy onto my Raspberry Pi for use with Python 3.2.3 which came ready installed with the OS. I have tried every command line command that I can find and lots of possible permutations of certain words.
Following are the download instructions.
https://zulko.github.io/moviepy/install.html
After much effort, I eventually managed to download pip and installed moviepy, but it was the Python 2.7 version. 😡
I found a separate thing called pip3 and installed it using:
sudo apt-get install python3-pip --fix-missing
It appeared to be successful.
Eventually I found a command that should work with Python 3.2:
pip-3.2 install moviepy
But it gave the error:
Cannot fetch index base URL http://pypi.python.org/simple/
Could not find any downloads that satisfy the requirement moviepy
No distributions at all found for moviepy
Storing complete log in /home/Pi/.pip/pip.log
What do I do?
I have no knowledge of CLI at all...
Do
sudo pip install ez_setup
sudo pip install moviepy
If it says like pip not found type
sudo apt-get install python
Python 3 is a little harder to setup so doing that command will give you 2.7
But there syntax is basicly the same.

Categories