Python libraries: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=== Libraries ===
Kodi Python comes with all the standard modules from Python 2.7 or later. See https://docs.python.org/2.7/library/ for reference.
XBMC Python comes with all the standard modules from Python 2.6. If you need to find a list of them, you can use the following command to generate a list of built-ins:


<pre><nowiki>import sys
== Built-in modules ==
print sys.builtin_module_names</nowiki></pre>
In addition to the standard libraries, Kodi Python uses a handful of custom modules to expose Kodi functionality to Python.


For a list of the other standard libraries, find the file "python26.zlib" in your XBMC installations /system/python/ folder, and open it with an archive viewer such as WinRAR or 7-zip.
Up to date documentation about these modules can be found at https://codedocs.xyz/xbmc/xbmc/group__python.html
 
 
==== Custom libraries ====
In addition to the built-ins and standard libraries, XBMC Python uses a handful of custom libraries to expose XBMC functionality to Python.
 
Up to date documentation about these modules can be found at http://mirrors.xbmc.org/docs/python-docs/


{| border=1 cellspacing=0 cellpadding=5
{| border=1 cellspacing=0 cellpadding=5
Line 33: Line 26:
|}
|}


== Third-party modules ==
Numerous python modules are already packages as add-ons that can be imported by other add-on. See [[:Category:Add-on_libraries/modules]] for a list of available modules. To use any of these modules with your add-on, add the relevant line to [[Addon.xml#.3Crequires.3E|Addon.xml]]


==== Installing additional libraries ====
== Installing additional modules ==
Additional libraries can be installed by adding them to the /system/python/Lib folder of your XBMC installation. A Python module placed in this folder can be called from any script or plugin within XBMC.
Additional modules may be installed by simply adding the module to the root folder of your add-on.


Of course, you can also place the library files you want to import in your script or plugin folder, directly in the root or in a subfolder. A popular method is to add a "resources" subfolder to your script's folder, and add it to the path within your script.  
A common way to organized third-party modules that are not part of add-on source code itself, is to add a <code>lib</code> directory and place an <code>__init__.py</code> file and other third-party modules inside it. These modules may then normally be imported using <code>from lib import somemodule</code>.


If you are going to use a module that will possibly used by more add-on you can better create a separate add-on of this so more add-ons can make use of it. Be sure to checkout which modules are already available from our XBMC repository by looking at http://mirrors.xbmc.org/addons/ and choose the XBMC version your are developing for.
[[Category:Add-on development]]

Revision as of 19:53, 26 February 2018

Kodi Python comes with all the standard modules from Python 2.7 or later. See https://docs.python.org/2.7/library/ for reference.

Built-in modules

In addition to the standard libraries, Kodi Python uses a handful of custom modules to expose Kodi functionality to Python.

Up to date documentation about these modules can be found at https://codedocs.xyz/xbmc/xbmc/group__python.html

Module Description
xbmc Offers classes and functions that provide information about the media currently playing and that allow manipulation of the media player (such as starting a new song). You can also find system information using the functions available in this library.
xbmcgui Offers classes and functions that manipulate the Graphical User Interface through windows, dialogs, and various control widgets.
xbmcplugin Offers classes and functions that allow a developer to present information through XBMC's standard menu structure. While plugins don't have the same flexibility as scripts, they boast significantly quicker development time and a more consistent user experience.
xbmcaddon Offers classes and functions that manipulate the add-on settings, information and localization.
xbmcvfs Offers classes and functions offers acces to the Virtual File Server (VFS) which you can use to manipulate files and folders.

Third-party modules

Numerous python modules are already packages as add-ons that can be imported by other add-on. See Category:Add-on_libraries/modules for a list of available modules. To use any of these modules with your add-on, add the relevant line to Addon.xml

Installing additional modules

Additional modules may be installed by simply adding the module to the root folder of your add-on.

A common way to organized third-party modules that are not part of add-on source code itself, is to add a lib directory and place an __init__.py file and other third-party modules inside it. These modules may then normally be imported using from lib import somemodule.