Difference between revisions of "Extension requirements"
m (→What if it doesn't work?: Layout improvement) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{Template:MovedToOtherSite|topic=Extension development|new_url=https://inkscape.gitlab.io/extensions/documentation/|new_site=GitLab}} | ||
This page is '''outdated''' | ---- | ||
This page is '''outdated'''. | |||
Line 65: | Line 67: | ||
6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL | 6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL | ||
== Plugin | == Plugin Extensions == | ||
Plugins are a special type of extension that are similar to internal extensions. They're written in C/C++ and can directly interface with Inkscape itself. However, they're linked into a separate library that is dynamically loaded at runtime. | |||
While this makes them very powerful, they're also significantly harder to code and need to be compiled before being usable. Also the compiled library will be OS/platform-dependent and might not even be compatible between different versions of Inkscape on a single platform. | |||
See the [https://gitlab.com/inkscape/inkscape/tree/master/src/extension/plugins/grid2 grid2 extension] for a working prototype of this extension type. If you have an Inkscape development environment set-up | |||
* compile/link with "make grid2" | |||
* copy the linked library (libgrid2.dll/so) and the libgrid2.inx file into the "/extensions" folder. | |||
* run from "Render -> Grids -> Grid2" | |||
== What if it doesn't work? == | == What if it doesn't work? == | ||
Line 73: | Line 83: | ||
* Use the error messages printed to the console to diagnose the problem (very often missing dependencies) | * Use the error messages printed to the console to diagnose the problem (very often missing dependencies) | ||
* On Windows you will have to redirect output to a text file like this: "inkscape > output.txt" | * On Windows you will have to redirect output to a text file like this: "inkscape > output.txt" | ||
* If your operating system (e.g. your Linux distro) uses a different default version of Python (or Perl, Ruby, etc.) than what is required by Inkscape extensions, please see [[Extension_Interpreters#Selecting_a_specific_interpreter_version_.28via_preferences_file.29]] for how to set the interpreter that Inkscape will use. The most common example of this is that the default Python version of the operating system is 3, but Inkscape requires Python2, resulting in all extensions giving an error. | * If your operating system (e.g. your Linux distro) uses a different default version of Python (or Perl, Ruby, etc.) than what is required by Inkscape extensions, please see [[Extension_Interpreters#Selecting_a_specific_interpreter_version_.28via_preferences_file.29 | Extension Interpreters]] for how to set the interpreter that Inkscape will use. The most common example of this is that the default Python version of the operating system is 3, but Inkscape requires Python2, resulting in all extensions giving an error. | ||
[[Category:Extensions]] | [[Category:Extensions]] |
Latest revision as of 19:54, 3 February 2023
The Inkscape Wiki is no longer used to host information about Extension development.
You can now find related information at GitLab.
This page is kept for historical reasons, e.g. to document specific decisions in Inkscape development.
This page is outdated.
For alternative information sources, see also:
- The extensions error log in your Inkscape user configuration directory, in case an extension doesn't work. It will list missing dependencies for each extension.
- For info about how to make your own:
- go to the corresponding page on our main website
- also take a look at these Wiki articles: Script Extensions, INX Extension Descriptor Format, Inkscape-Specific XML attributes
- If you are interested in opening special file formats through extensions, see GettingExtensionsWorking.
- More info about existing extensions can be found
- in our website's addon gallery
- and in the Extension Repository page of the Wiki.
Python Extensions
on Debian GNU / Linux
apt-get install python python-lxml
on Microsoft Windows
From version .44 onwards, Inkscape now includes Python in the download, and has extensions enabled by default. The latest stable Inkscape version includes Python 2.6.5.
on Mac OS X
Starting with version 0.46, Inkscape contains the python packages needed for the extension system. All python extensions should work out of the box. However in case you still have trouble you can install them in their regular location.
Compiling from source
If you prefer, you can install them from source, it is really easy.
- download the source code for sourceforge numpy repository and/or lxml download section
- unpack the
.tar.gz
filetar -xzf numpy***.tar.gz lxml***.tar.gz
- for each one
cd
into the newly created directory - build C extensions and install (the install is system wide so you need administrator privileges)
sudo python setup.py install
and type your password.
The packages are installed in the site-packages directory of your Python install. This is /Library/Python/2.*/site-packages for the stock install of Python on Mac OS X.
Perl Extensions
on Debian GNU / Linux
apt-get install perl libxml-xql-perl
on Gentoo GNU / Linux
emerge -a XML-XQL
on Microsoft Windows
install ActivePerl install XML::XQL::DOM (perhaps like this?) 1: install prereqs with ppm: install xml-dom install parse-yapp install datemanip 2: download xml-xql from: http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz 3: open command prompt and locate perl"s lib directory with: perl -e "print qq(@INC)" (mine was C:/Perl/site/lib) 4: unpack xml-xql archive 5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML 6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL
Plugin Extensions
Plugins are a special type of extension that are similar to internal extensions. They're written in C/C++ and can directly interface with Inkscape itself. However, they're linked into a separate library that is dynamically loaded at runtime.
While this makes them very powerful, they're also significantly harder to code and need to be compiled before being usable. Also the compiled library will be OS/platform-dependent and might not even be compatible between different versions of Inkscape on a single platform.
See the grid2 extension for a working prototype of this extension type. If you have an Inkscape development environment set-up
- compile/link with "make grid2"
- copy the linked library (libgrid2.dll/so) and the libgrid2.inx file into the "/extensions" folder.
- run from "Render -> Grids -> Grid2"
What if it doesn't work?
- Run Inkscape from the console
- Use the error messages printed to the console to diagnose the problem (very often missing dependencies)
- On Windows you will have to redirect output to a text file like this: "inkscape > output.txt"
- If your operating system (e.g. your Linux distro) uses a different default version of Python (or Perl, Ruby, etc.) than what is required by Inkscape extensions, please see Extension Interpreters for how to set the interpreter that Inkscape will use. The most common example of this is that the default Python version of the operating system is 3, but Inkscape requires Python2, resulting in all extensions giving an error.