-
Notifications
You must be signed in to change notification settings - Fork 17
Deploy the Python Application
This process was tested on OS X, Ubuntu, Debian and Raspbian.
If you're deploying on a Raspberry, your pip installation must have access to the pywheels repository. If you are on Raspbian Stretch you already have it enabled. If you are on Jessie, or on Stretch upgraded from Jessie, you need to enable this manually, following the instructions here.
Anyway, we reccomend starting with a clean Raspbian Stretch image.
- portaudio19-dev (to compile pyaudio)
- git
- python3
- python3-pip
- python3-venv
- libopenjp2-7-dev libtiff5 (pillow)
- libhdf5-dev (cv2)
sudo apt install portaudio19-dev git python3-pip python3 python3-venv libopenjp2-7-dev libtiff5 libatlas-base-dev libhdf5-dev libhdf5-serial-dev python-gobject libharfbuzz-bin libwebp6 libjasper1 libilmbase12 libgstreamer1.0-0 libavcodec-extra57 libavformat57 libopencv-dev libqtgui4 libqt4-test omxplayer libhdf5-dev
Note that an error in installing omxplayer may occour, ignore that. Furthermore, if you use Ubuntu, packages >for libjasper1 may not be found, you can solve this problem with:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
Now, once you have the dependencies,
git clone https://github.com/CoderBotOrg/coderbot.git
cd coderbot
python3 -m venv .
source bin/activate
pip3 install -r requirements_stub.txt
# If you plan to run just the Stub mode, you don't need the following line
pip3 install -r requirements.txt
MAKE SURE that every package installation succedeed. pip stops at the first failure so an error compromise everything. If you have problems with ANY of the raspberry-specific python3 packages (piamera, tensorflow, tensorboard, pigpio, pyaudio) you can find ready builds here.
Now, run the backend with
python3 init.py
or
PYTHONPATH=stub:test python3 init.py
for the Stub mode.
Note that an error about PyAudio, similar to this
Building wheels for collected packages: PyAudio
Running setup.py bdist_wheel for PyAudio ... error
Complete output from command /home/pi/coderbot/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-vup_psej/PyAudio/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpq1wxoi_1pip-wheel- --python-tag cp35:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'bdist_wheel'
----------------------------------------
Failed building wheel for PyAudio
Running setup.py clean for PyAudio
Failed to build PyAudio
is completely normal. Installation will proceed using Running setup.py install for PyAudio ... done
. As long as you can see "PyAudio" in the list of "Installing collected packages", everything is good.