Difference between revisions of "Extension Interpreters"

From Inkscape Wiki
Jump to navigation Jump to search
(Windows will default to wperl.exe starting with Inkscape 1.0)
(Move documentation)
Tags: Replaced Visual edit
 
Line 1: Line 1:
== Supported Interpreters ==
This page used to contain information about interpreters for running extensions in Inkscape. It has been moved to the [https://inkscape.gitlab.io/extensions/documentation/authors/interpreters.html extensions repository documentation].
 
Inkscape Script extensions can use one of the following interpreters:
 
{| class="wikitable" style="color: black; width: 100%;"
|-
! Language || Name (in INX file) || Name (in preferences.xml) || Default value
|- style="vertical-align:top;"
|Perl      || "perl"            || "perl-interpreter"        || "perl"<br/>"wperl" (Windows; since Inkscape 1.0)
|- style="vertical-align:top;"
|Python    || "python"          || "python-interpreter"      || "python"<br/>"pythonw" (Windows)
|-
|Ruby      || "ruby"            || "ruby-interpreter"        || "ruby"
|-
|Shell    || "shell"            || "shell-interpreter"      || "sh"
|-
|}
 
(Code reference: /src/extension/implementation/script.cpp)
 
== INX files ==
 
Within the INX file, you need to indicate the interpreter which will be used to execute the script, using the name given in the table above:
 
Example:
 
<pre>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
  ...
  <script>
    <command reldir="extensions" interpreter="python">my_extension.py</command>
  </script>
</inkscape-extension>
</pre>
 
== Selecting a specific interpreter version (via preferences file) ==
 
In the preferences.xml file, a user can set a specific executable of the interpreter that Inkscape should use to execute extensions of a specific type.
 
This is especially useful, if the system's default version of the interpreter is incompatible with the one used by Inkscape's extension subsystem (e.g. Inkscape extensions that rely on inkex.py will only work with Python 2 (as of Inkscape 0.92.1), while on some recent Linux distributions, the default Python version used is Python 3, which results in errors during execution of extensions).
 
To change the executable that will be used to run script extensions to a different value than the default value in the above table, you need to do the following:
 
<ol>
<li>quit all running Inkscape processes</li>
<li>Open your perferences.xml file with a text editor (find the exact location of the file by going to Edit -> Preferences -> System: User Preferences)</li>
<li>search the group which holds settings for the extension system itself and options of various extensions:
<pre>
  <group
    id="extensions"
    …
    org.ekips.filter.gears.teeth="24"
    org.ekips.filter.gears.pitch="20"
    org.ekips.filter.gears.angle="20" />
</pre></li>
<li>Insert a key for the interpreter, for example 'python-interpreter' for setting the program that should be used to run python extensions, and set the string to the absolute path to the python binary which is compatible with Inkscape's current extension scripts (in the example below, the path is "/usr/bin/python2.7". It will look different on Windows systems.):
<pre>
  <group
    id="extensions"
    python-interpreter="/usr/bin/python2.7"
    …
    org.ekips.filter.gears.teeth="24"
    org.ekips.filter.gears.pitch="20"
    org.ekips.filter.gears.angle="20" />
</pre></li>
<li>Save the preferences file, and launch Inkscape to test the extensions.</li>
</ol>
 
== See Also ==
 
*[[INX Parameters]]
*[[ScriptingHOWTO]]
 
[[Category:Developer Documentation]]
[[Category:Developer Documentation]]
[[Category:Extensions]]
[[Category:Extensions]]

Latest revision as of 18:58, 3 March 2022

This page used to contain information about interpreters for running extensions in Inkscape. It has been moved to the extensions repository documentation.