Difference between revisions of "Python development"

From ArmadeusWiki
Jump to: navigation, search
m (Installation)
(Installation)
Line 3: Line 3:
  
 
==Installation==
 
==Installation==
Python interpreter and libraries are not installed in the default APF9328 rootfs. Currently it increases the rootfs size by 6 MBytes and so, without cleanup, '''it won't fit in the old APF9328 FLASH size (8 MBytes)'''.<br>
+
* Python interpreter and libraries are not installed in the default APF9328 rootfs. Currently it increases the rootfs size by 6 MBytes and so, without cleanup, '''it won't fit in the old APF9328 boards with 8 MBytes FLASH size'''. So for the moment, if you have an 8MB FLASH, you can only use it from a [[Network_Configuration#Boot_from_NFS | NFS]] or [[MultiMediaCard#Booting_from_MMC.2FSD | a MMC/SD rootfs]].<br>
So for the moment, if you have an 8MB FLASH, you can only use it from a NFS or a MMC/SD rootfs.<br>
+
 
'''Python''' version installed by Buildroot is '''2.4'''.<br>
 
'''Python''' version installed by Buildroot is '''2.4'''.<br>
 
If your are a Python expert you can still delete some files in $ROOTFS/usr/lib/python2.4/... and tell us what isn't mandatory and uses a lot of space for nothing.
 
If your are a Python expert you can still delete some files in $ROOTFS/usr/lib/python2.4/... and tell us what isn't mandatory and uses a lot of space for nothing.
  
 
* Launch Buildroot's menuconfig:
 
* Launch Buildroot's menuconfig:
<source lang="bash">
+
<pre>
 
  armadeus$ make menuconfig
 
  armadeus$ make menuconfig
</source>
+
</pre>
 
* In  
 
* In  
 
[[Image:Menuconfig_package.png]] <br>  
 
[[Image:Menuconfig_package.png]] <br>  
Line 19: Line 18:
 
[[Image:Menuconfig_package_python.png]] <br>
 
[[Image:Menuconfig_package_python.png]] <br>
 
* then save your configuration and build your system:
 
* then save your configuration and build your system:
<source lang="bash">
+
<pre>
 
  armadeus$ make
 
  armadeus$ make
</source>
+
</pre>
* copy generated rootfs to your NFS directory or on your MMC/SD. If you already have an existing rootfs then just make a:
+
* copy generated rootfs to your NFS directory or on your MMC/SD: [[Network_Configuration#Boot_from_NFS | Booting from NFS]] or [[MultiMediaCard#Booting_from_MMC.2FSD | Booting from MMC/SD]].
armadeus$ tar xf buildroot/binaries/apf9328/rootfs.tar -C /local/export/
+
Here ''/local/export/'' is my NFS exported directory.
+
  
 
==Source code==
 
==Source code==

Revision as of 10:33, 29 January 2009

Basic usages

On this page you will learn how to create your first Python script for your Armadeus board. Python logo.png

Installation

  • Python interpreter and libraries are not installed in the default APF9328 rootfs. Currently it increases the rootfs size by 6 MBytes and so, without cleanup, it won't fit in the old APF9328 boards with 8 MBytes FLASH size. So for the moment, if you have an 8MB FLASH, you can only use it from a NFS or a MMC/SD rootfs.

Python version installed by Buildroot is 2.4.
If your are a Python expert you can still delete some files in $ROOTFS/usr/lib/python2.4/... and tell us what isn't mandatory and uses a lot of space for nothing.

  • Launch Buildroot's menuconfig:
 armadeus$ make menuconfig
  • In

Menuconfig package.png
and in
Menuconfig package scripting.png
choose
Menuconfig package python.png

  • then save your configuration and build your system:
 armadeus$ make

Source code

  • First take your favorite editor/IDE and create the following script:
 import sys
 
 print "APF9328 says: Hello World ! ;-)"
 sys.exit(0)
  • Save it as hello.py

Compilation

Not needed. Transforming python script in executables hasn't been tested yet.

Running

  • Copy your hello.py script on your NFS export directory or on your MMC/SD
  • then on your APF console, launch it:
# python hello.py
APF9328 says: Hello World ! ;-)
#

Now it's up to you ! ;-) But keep in mind that Python is extremly powerfull and libraries rich, so if you don't pay attention to memory usage of your scripts, you can easily reach the APF9328 memory size limit: 16 MBytes.

Advanced usages

Disabling modules

Defaults python modules can be disabled by buildroot under the makefile buildroot/package/python/python.mk if space is precious.

# these could use checks for some BR2_PACKAGE_foo,y
BR2_PYTHON_DISABLED_MODULES=pyexpat dbm gdbm bsddb \
	_curses _curses_panel _tkinter nis

Installing modules

Default python package on buildroot is minimal, for certain usage, it necessary to install more modules. Here a list of module tested on apf9328 :

pyserial

This module is used to communicate through serial port (rs232). The package is really simple to install. Just download the module here [1] and unzip it on card (or on nfs filesystem). Once uncompressed just type :

# python setup.py install

Under the pyserial directory. Once installed, this directory is no longer needed.

Links


FrenchFlag.png Cette page en français