Next Gen version of the RaceCapture App.
Dependencies:
- Python 2.7.x
- Patched Kivy 1.9.x (https://github.com/autosportlabs/kivy/tree/asl_1.9.0_patched)
- Pyserial 2.6.x
- Pygame
- Included in package right now but ultimately shouldn't be:
- Graph (via kivy-garden via python-pip)
- NavigationDrawer (via kivy-garden)
- ModernMenu (via kivy-garden)
- asl_f4_loader (in dependencies folder)
- ihexpy (manual install from https://github.com/Jeff-Ciesielski/ihexpy )
- download patched 1.9.0 kivy from https://github.com/autosportlabs/kivy/tree/asl_1.9.0_patched
- Install from source
- install virtualenv
- create a virtual environment (perhaps in this directory):
virtualenv _ve
- activate the virtualenv:
. _ve/bin/activate
- install pip requirements:
pip install -r requirements.txt
(you may be required to upgrade your version of setuptools via the provided command) - install asl_f4_loader in dependencies folder: pip install asl_f4_loader-X.X.X.tar.gz
- install pygame (http://www.pygame.org/download.shtml - use correct package for your OSX+Python version)
- download patched 1.9.0 kivy from https://github.com/autosportlabs/kivy/tree/asl_1.9.0_patched
- Install from source
-
make && sudo make install
- install Kivy into Applications and run symlink script
- install virtualenv
- re-enable setup tools for Kivy virtualenv:
sudo virtualenv /Applications/Kivy.app/Contents/Resources/venv/
- install pip requirements:
/Applications/Kivy.app/Contents/Resources/venv/bin/pip install -r requirements.txt
- run app:
kivy main.py
/Applications/Kivy.app/Contents/Resources/script main.py
- Add a .sentry file with the app's platform-specific DSN for Sentry
- Follow the platform-specific build instructions
- Make sure all dependencies are installed inside Kivy's venv
cd /Applications/Kivy.app/Contents/Resources/venv/bin
&&source activate
cd /path/to/RaceCapture_App
&&pip install -r requirements.txt
- If we're using a custom build of Kivy, we need to fix the paths for some libraries, run the install/osx/fix-osx-paths.sh script.
cd install/osx
./build-osx.sh
The script will create the .App file and .dmg for distribution.
- Download Kivy (current is 1.9.0) - remember to get the py2.7 version
- Follow Kivy install instructions- install to c:\Kivy-1.9.0
- Rename kivy27 to kivy27_original (move it out of the way)
- Pull down patched 1.9.0 from https://github.com/autosportlabs/kivy/tree/asl_1.9.0_patched
- Place in same installation directory (c:\Kivy-1.9.0)
- Rename to kivy27
- Build modified kivy
- Launch kivy-bash-2.7.bat
- In the MinGW console, enter kivy27 directory
- Build by issuing 'make'
- When complete, there should be a kivy27/build directory - this will be the patched version
my_kivy_install_folder\kivy.bat
(sets path variables for current shell)- Install [virtualenv]:
pip install virtualenv
- Create a virtual environment (perhaps in this directory):
virtualenv _ve
- Activate the virtualenv:
_ve\Scripts\activate
- Install pip requirements:
pip install -r requirements.txt
(if this crashes you installed the py3.3 version of Kivy, doughball)
Launch kivy environment by launching kivy-2.7.bat in installation folder
Navigate to the RaceCapture source directory
kivy main.py
Note: If you get an error doing this ("cannot find text provider") then you might be like me and be unable to run RaceCapture inside a virtualenv for some reason. Try performing the above steps without the virtual env part.
- Do the "installation" instructions above
- Download [Eclipse] (https://www.eclipse.org/downloads/)
- Install [PyDev for Eclipse] (http://pydev.org/manual_101_install.html) and use auto-config
- In Window..Preferences..PyDev..Interpreter..Python Interpreter..Environment, add a variable "PATH" with value c:\kivy;c:\kivy\Python;c:\kivy\gstreamer\bin;c:\kivy\MinGW\bin;%PATH%
- In Window..Preferences..PyDev..Interpreter..Python Interpreter..Forced Builtins, add "kivy" to the list
- Make a new project in Eclipse, select "PyDev project" and specify the folder with Racecapture in it
- Right-click the project...Properties...pyDev-PYTHONPATH...External Libraries - Add source folder, add my_kivy_install_folder\kivy
- Run the project
kivy
(to get paths set up)- activate the virtualenv:
_ve\Scripts\activate
- Install [PYInstaller] (http://www.pyinstaller.org)
pip install pyinstaller
- Install [PyWin32] (http://sourceforge.net/projects/pywin32/files/)
pip install pywin
- Try
pyinstaller --version
- should return "2.1" or similar - Install [nullsoft scriptable install system] (http://nsis.sourceforge.net/Download) stable version (currently 2.46)
- Open (from your Kivy folder)
\Python27\Lib\site-packages\pygments\lexers\__init__.py
and add a line "from pygments.lexers.agile import PythonLexer" near the top. Yes, I know this is bad form. It's to fix an error ("AttributeError: 'module' object has no attribute 'PythonLexer'") where PyInstaller failed to find an import and I couldn't work out how to force it. You would think that this could be forced by creating a hook-pygments.lexers.py file with hiddenimports = ['agile'] in it, but you'd be wrong as this file already exists in the default PyInstaller hooks and it doesn't fix this problem. -CLR 2014-05-29
- Go into RaceCapture_App folder
- Activate the virtualenv:
_ve\Scripts\activate
kivy
(to get paths set up)- cd install
buildwininstall.bat
- deletes old build folders, builds installer and tries to run the package (to run manually usedist\racecapture\racecapture
)
- Download patched source from https://github.com/autosportlabs/kivy/tree/asl_1.9.0_patched
- Install from source. From the downloaded kivy source execute:
-
sudo python setup.py install
- install [virtualenv]:
sudo pip install virtualenv
- create a virtual environment (perhaps in this directory):
virtualenv _ve
- activate the virtualenv:
. _ve/bin/activate
- install pip requirements:
sudo pip install -r requirements.txt
(you may be required to upgrade your version of setuptools via the provided command) - install asl_f4_loader in dependencies folder: pip install asl_f4_loader-X.X.X.tar.gz
python main.py
- install buildozer from https://github.com/kivy/buildozer
- from the root RaceCapture app directory, run ./build_apk.sh . buildozer will download files as necessary and build the apk
- if buildozer fails with a cython error, install cython from your package manager
- if buildozer fails with an Android SDK error, enter the ~/.buildozer directoy and run android update sdk -u from the android tools directory.
- Ensure your android device is in developer mode and plug it in via usb
- install / launch the app using ./launch_apk.sh
- Console / debug output will appear on screen as app is downloaded, installed and run