How to include Python pip3 modules in OpenWRT image - openwrt

I'm going to include pip3 modules in OpenWRT image, so it won't require other dependencies after installed OpenWRT image.
For example, I'm going to include argparse module in OpenWRT image.
This module may be installed by the following command in initial OpenWRT image:
opkg install python3
pip3 install argparse
How can I include them in initial OpenWRT firmware?
Thanks!

First, run make menuconfig, and then select Languages -> Python, and then select python3,python3-pip, then save and then exit.
Next, run ./scripts/env new py3-argparse to create a build environment for your changes.
Finally, download the argparse library and place it in files/lib/python3.6/site-packages.
References:
OpenWrt - Build Environments
Python3 - argparse (source)

Related

preparing metadata (setup.py): finished with status 'error' [duplicate]

Trying to install:
pip install multiprocessing
Getting an error:
Collecting multiprocessing
Using cached multiprocessing-2.6.2.1.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/7s/sswmssj51p73hky4mkqs4_zc0000gn/T/pip-build-8c0dk6ai/multiprocessing/setup.py", line 94
print 'Macros:'
^
SyntaxError: Missing parentheses in call to 'print'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/7s/sswmssj51p73hky4mkqs4_zc0000gn/T/pip-build-8c0dk6ai/multiprocessing/
Anyone knows the way to fix this?
In short: Multiprocessing is already pre-installed in python 3, no need to install it.
I found an answer to my question and it's a silly one - multiprocessing is already pre-installed in my version of Python (3.5.2) by default.
It won't show up in the list of packages in Anaconda >> Environments >> root, as it's not a third party package but an internal one.
If anyone is not sure whether this applies to you, just check from multiprocessing import Pool in your Python console.
This is true of all currently supported versions of Python (2.7 and 3.x) and according to a Python maintainer/contributor multiprocessing has been part of the standard library (batteries included) since Python 2.6. https://bugs.python.org/msg326646
You won't need to do a pip install multiprocessing anymore and do NOT include it in your requirements.txt unless you are maintaining a Python 2.4/2.5 application (please migrate!). On most versions you can just import multiprocessing and you should be fine.
Instead of pip install multiprocessing type instead:
pip install multiprocess
Of course you are trying to install multiprocessing library on python3 while this library is installed on python3 by default and doesn't need to install again.
Be Lucky
pip3.5 install multiprocessing-utils
https://pypi.org/project/multiprocessing-utils/
python -m pip install multiprocessing
Use python2.7 to install multiprocessing instead of using python3.5+
Python 2.7 to 3 changed from print "Hello World" to print('Hello World') making print a function now. Judging from the error message, it looks like pip or multiprocessing is expecting python 3.
You can check your Python version using this command:
python --version
You update pip if you already have python 3 on linux:
sudo apt-get install python3-pip
For mac, you can use the equivalent homebrew command. This should allow you to use a:
pip3 install multiprocessing

Raspberry PI 4 - 8GM RAM - 64 bit OS aarch64 - easyocr - torch - opencv - illegal instruction

I am trying to get easyocr running on a raspberry pi 4 and could use some suggestions or help. I am using the 64 bit build from May 7th - 2021 (2021-05-07-raspios-buster-arm64.zip). When I do a fresh OS install, I execute the following commands:
sudo vi /etc/dphys-swapfile # change swapfile to 2GB
sudo raspi-config # expand the filesystem to use the entire SD card
sudo apt-get update #
sudo apt-get upgrade #
sudo apt autoremove # The following packages will be REMOVED: python-colorzero
sudo python -m pip install --upgrade pip # upgrade pip
sudo pip3 install --upgrade pip # upgrade pip3
sudo python3 -m pip install numpy --upgrade # upgrade numpy
sudo python3 -m pip install easyocr # install easyocr
I open a python3 editor and execute the following commands:
import cv2
import torch
import easyocr
reader = easyocr.Reader(['en'])
results = reader.readtext('/home/pi/Downloads/Calibration.bmp')
The last command results in an Illegal instruction error. I figured openCV was the likely culprit so I compiled it from source and tried again. I got the same error. I have tried going with a 32 bit build, but torch needs 64 bit to work. I have tried the same sequence and code through Anaconda on a windows 64 bit machine and it works without issue.
My next two attempts will be to build easyocr and/or torch from source , but I am grasping at straws here. I am really not sure how to figure out what software is causing the illegal instruction so I can hone in on that package. I would appreciate any thoughts on what I can do to get more information or thoughts on what things I can try.
Thanks a bunch.
[EDIT]I installed python3-dbg so I could run the application under gdb. When I do, the error I get is
Thread 1 "python3-dbg" received signal SIGILL, Illegal instruction. 0x0000ffffe4189fc8 in exec_blas () from
/home/[USER]/.local/lib/python3.8/site-packages/torch/lib/libtorch_cpu.so
[EDIT2]I found a git hub repository that creates wheel files (WHL) for those having illegal instruction errors like me. So far it hasn't helped. I have tried a few, but am going to use a more systematic approach. to see if I can find the right combination.

opencv_createsamples.exe location for conda install

I am trying to create a cascade classifier for my program.The docs mention using a script in order to help generate positive images, but I don't know where to get this script. I am wondering if the opencv_createsamples application is available for opencv installs via conda. How can I obtain it?
You can obtain the script executable by either building OpenCV v3 from source. The conda install will not include them. You will find the applications and how to build them in the repositorys apps folder
If you are on Linux there is a package available: sudo apt get install libopencv
After you install you can run opencv_createsamples [options]
Manpage

ImportError('Could not import PIL.Image. ' working with keras-ternsorflow

I'm following some lectures from lynda.com about deep learning using Keras-TensorFlow in a PyCharmCE enviroment and they didn't have this problem.
I get this error:
raise ImportError('Could not import PIL.Image. '
ImportError: Could not import PIL.Image. The use of array_to_img requires PIL.
I have checked if others get the same error, but for me installing pillow using pip with the command pip install Pillow doesn't solve anything.
MacBook-Pro-de-Rogelio:~ Rogelio$ pip install Pillow
Requirement already satisfied: Pillow in ./anaconda3/lib/python3.6/site-packages
MacBook-Pro-de-Rogelio:~ Rogelio$
Any solution?
All you need to do is install pillow:
pip install pillow
Then you should be all set. Found this after hours of searching.
I had the exact same error and I fixed it the following way:
1) Run this command in your Jupyter Notebook:
import sys
from PIL import Image
sys.modules['Image'] = Image
2) Run the following two lines in your notebook to be sure that they are correctly pointing to the same directory (if not it's because your PIL old library is messing up with the Pillow library)
from PIL import Image
print(Image.__file__)
import Image
print(Image.__file__)
3) If that's working correctly and both import prints pointing to the same python3 directory then move on.
If not:
3.a) Go to your OS console and to your conda environment (be sure you are working within your desire conda environment) :
conda uninstall PIL
conda uninstall Pillow
conda install Pillow
You should now have successfully installed all the libraries for Pillow and let behind any problems with PIL.
3.b) Now try to execute the code of your jupyer notebook again, now the paths to both the imports should look exactly the same
4) Now, in the OS console/terminal, having your desired conda environment active, run the following commands:
conda install keras
conda install tensorflow
5) Run your jupyter notebook script again, It should be fixed and working now!
If it's still not working, it must be because you have opened a jupyter notebook kernel that's not point to the right environment. Fix that and you will be fine!
If this problem is being seen on an Anaconda env,
use
conda install pillow
and reopen
I ran into a similar issue with keras + tensorflow + miniconda.
I followed this advice from this issue : https://github.com/asataniAIR/Image_DL_Tutorial/issues/4 and did a pip install in conda admin console.
So I enter
pip install --upgrade tensorflow keras numpy pandas sklearn pillow
on anaconda prompt, and add
from sklearn.preprocessing import LabelEncoder
in python code instead
from PIL import Image
Here's what worked for me. Uninstall the conda version of pillow and install the pip version, then restart the kernel of your Jupyter Notebook
conda uninstall --force pillow
pip install pillow
pip install pillow
This did it for me as well.
I am using Jupyter Notebook, and Tensorflow2.0 Keras. To set the context, I got this error when i was trying to use builtin image.load_img() function in Keras. You will have to restart your kernel as well after doing this install.
I encountered the same problem while working on Pycharm. Even after trying various methods on the internet, I could not solve it. When I ran the code on Jupyter notebook, it asked me to install the module, SciPy. I installed it and the code is now working on Pycharm.
I have the same problem good news is it can be easily solvable.
my problem was:
I was using jupyter notebook for my python project which was launched using Anaconda navigator. In the python program I was using the function
image_ = image.load_img(image_path, target_size=(224,224))
then I got this error "raise ImportError('Could not import PIL.Image. ' ImportError: Could not import PIL.Image."
solution worked for me:
in the environment you are using for jupyternotebook firstly uninstall pillow using the command
conda uninstall --force pillow
then install it using the command
pip install pillow
(type these commands in the anaconda prompt)
then close all your notebooks and anaconda navigator, open anaconda navigator with the environment that you have installed before, in that environment launch the jupyter notebook and run the code
it will work
I had the exact same question. And I fixed it by changing my environment variables. Because I had two versions of python in my windows PC.
So I changed the priority, and moved the python 3.x version at the top position.
Then I reinstalled the pillow, and the problem was solved.
if pip and conda installing is not working for you try to:
pip3 install pillow
and then:
from PIL import Image
It should work! Check your python version and which one are you using as default! :)
Using a conda environment run conda install pillow. If you're using Jupyter notebook, don't forget to restart the Kernel.
This just worked for me.
If anyone wondering the above-mentioned process can be implemented using anaconda navigator.
Open the navigator, go to the Environments tab you are currently working and search pillow from the uninstalled tab before the search tab (if it's not installed in the current environment you are working)
Then select pillow and apply. Install then.
After that go to Home tab and launch Spyder.
If your using Anaconda 3, u have to install Pillow in the environment that your working on. just go to the not install section and search for Pillow, then install it to the environment. This way will nail the problem for you.
Install these:
$ pip install pillow -U
$ pip install pathlib -U
It may be a version issue, I had this issue with TensorFlow 3.2.0 and setting pillow to 8.2.0 worked for me somehow along the way of uninstall/reinstall/restart.

Anaconda - Manually adding a built package

I have build OpenCV (using cmake) and I can see the libs, include and bin files copied to my conda desired env. However, using conda list doesn't list the OpenCV. Is there a way to overcome this?
conda list will only show pip install or conda install installed packages.
To verify if OpenCV works, type below to check the version.
import cv2
print cv2.__version__
Hope this answer your question.

Resources