boxespy/html/install.html

242 lines
14 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Installation &#8212; boxes.py 0.1 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/nature.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="macOS" href="install/macos.html" />
<link rel="prev" title="Frequently Asked Questions" href="faq.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="install/macos.html" title="macOS"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="faq.html" title="Frequently Asked Questions"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">boxes.py 0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Installation</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="installation">
<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this heading"></a></h1>
<p>Boxes.py is a pure Python project that does support the regular setuptools
method of shipping with <code class="code docutils literal notranslate"><span class="pre">setup.py</span></code>. <code class="code docutils literal notranslate"><span class="pre">setup.py</span> <span class="pre">--help-commands</span></code> and
<code class="code docutils literal notranslate"><span class="pre">setup.py</span> <span class="pre">CMD</span> <span class="pre">--help</span></code> provide the necessary documentation for building,
installing or building binary formats.</p>
<section id="requirements">
<h2>Requirements<a class="headerlink" href="#requirements" title="Permalink to this heading"></a></h2>
<section id="affine">
<h3>Affine<a class="headerlink" href="#affine" title="Permalink to this heading"></a></h3>
<p><code class="code docutils literal notranslate"><span class="pre">Affine</span></code> (package name may be <code class="code docutils literal notranslate"><span class="pre">python-affine</span></code> or
<code class="code docutils literal notranslate"><span class="pre">python3-affine</span></code>) is used for vector calculation.</p>
</section>
<section id="shapely">
<h3>Shapely<a class="headerlink" href="#shapely" title="Permalink to this heading"></a></h3>
<p><code class="code docutils literal notranslate"><span class="pre">shapely</span></code> (package name may be <code class="code docutils literal notranslate"><span class="pre">python-shapely</span></code> or
<code class="code docutils literal notranslate"><span class="pre">python3-shapely</span></code>) is used for filling shapes (with holes).</p>
</section>
<section id="markdown">
<h3>Markdown<a class="headerlink" href="#markdown" title="Permalink to this heading"></a></h3>
<p><code class="code docutils literal notranslate"><span class="pre">Markdown</span></code> (package name may be <code class="code docutils literal notranslate"><span class="pre">python-markdown</span></code> or
<code class="code docutils literal notranslate"><span class="pre">python3-markdown</span></code>) is used to format the description texts.</p>
</section>
<section id="setuptools">
<h3>setuptools<a class="headerlink" href="#setuptools" title="Permalink to this heading"></a></h3>
<p>Setup.py uses the <code class="code docutils literal notranslate"><span class="pre">setuptools</span></code> library (package name may be
<code class="code docutils literal notranslate"><span class="pre">python*-setuptools</span></code>). You only need it if you want to build the
package.</p>
</section>
<section id="ps2edit">
<h3>ps2edit<a class="headerlink" href="#ps2edit" title="Permalink to this heading"></a></h3>
<p>While not a hard requirement Boxes.py uses <code class="code docutils literal notranslate"><span class="pre">ps2edit</span></code> to offer formats
that are not supported by Cairo: DXF, gcode, PLT. Currently the location
Boxes.py looks for <code class="code docutils literal notranslate"><span class="pre">ps2edit</span></code> is hard coded to <code class="code docutils literal notranslate"><span class="pre">/usr/bin/pstoedit</span></code>
in the <code class="code docutils literal notranslate"><span class="pre">boxes.formats.Formats</span></code> class.</p>
</section>
<section id="python">
<h3>Python<a class="headerlink" href="#python" title="Permalink to this heading"></a></h3>
<p>Boxes.py is implemented in Python 3. It used to work on Python 2.7,
too. But with the Python 2 approaching end of life support has been dropped.</p>
</section>
<section id="sphinx">
<h3>Sphinx<a class="headerlink" href="#sphinx" title="Permalink to this heading"></a></h3>
<p>For building the documentation locally you need the <em>Sphinx</em> documentation
generator (package name may be python-sphinx or python3-sphinx). It is
not needed for anything else. Boxes.py can be run and changed just
fine without.</p>
</section>
</section>
<section id="running-from-working-dir">
<h2>Running from working dir<a class="headerlink" href="#running-from-working-dir" title="Permalink to this heading"></a></h2>
<p>Due to lazy developer(s) Boxes.py can also run from the Git checkout.
The scripts in <code class="code docutils literal notranslate"><span class="pre">scripts/</span></code> are all suppossed to just work right
after <code class="code docutils literal notranslate"><span class="pre">git</span> <span class="pre">clone</span></code>. The Inkscape needs a bit manual work to get
running. See below.</p>
</section>
<section id="inkscape">
<h2>Inkscape<a class="headerlink" href="#inkscape" title="Permalink to this heading"></a></h2>
<p><strong>As binary</strong></p>
<p>Boxes.py can be used as a set of Inkscape plugins. The package does
install the necessary .inx files to <code class="code docutils literal notranslate"><span class="pre">/usr/share/inkscape/extensions</span></code>
on unix operating systems. The .inx files assume that the <code class="code docutils literal notranslate"><span class="pre">boxes</span></code>
executable is available in the path (which it is when installing the
binary package)</p>
<p><strong>git repository easy way</strong></p>
<p>After cloning it may be most convenient to generate the .inx files
right in place by executing <code class="code docutils literal notranslate"><span class="pre">scripts/boxes2inkscape</span></code> with the taget
path as only parameter.</p>
<ul class="simple">
<li><p>global: <code class="code docutils literal notranslate"><span class="pre">scripts/boxes2inkscape</span> <span class="pre">/usr/share/inkscape/extensions/</span></code></p></li>
<li><p>userspace: <code class="code docutils literal notranslate"><span class="pre">scripts/boxes2inkscape</span> <span class="pre">~/.config/inkscape/extensions/</span></code></p></li>
</ul>
<p>On non unix operating the target directories may differ. You can look
up the directories <em>“User extensions”</em> and <em>“Inkscape extensions”</em> within
the Inkscape preferences <em>Edit -&gt; Preferences… -&gt; System</em>.</p>
<p><strong>git repository manual way</strong></p>
<p><code class="code docutils literal notranslate"><span class="pre">setup.py</span> <span class="pre">build</span></code> creates the <code class="code docutils literal notranslate"><span class="pre">*.inx</span></code> files in the <code class="code docutils literal notranslate"><span class="pre">inkex/</span></code> directory.</p>
<p>They then have to be copied in either the global or the per user
extension directory of Inkscape. These are
<code class="code docutils literal notranslate"><span class="pre">/usr/share/inkscape/extensions/</span></code> and
<code class="code docutils literal notranslate"><span class="pre">~/.config/inkscape/extensions/</span></code> on a unix operating system.
On non unix operating the target directories may differ. You can look
up the directories <em>“User extensions”</em> and <em>“Inkscape extensions”</em> within
the Inkscape preferences <em>Edit -&gt; Preferences… -&gt; System</em>.</p>
<p>As an alternative you can create a symlink to the <code class="code docutils literal notranslate"><span class="pre">inkex/</span></code> directory
within the desired inkscape extension directory.</p>
</section>
<section id="platform-specific-instructions">
<h2>Platform specific instructions<a class="headerlink" href="#platform-specific-instructions" title="Permalink to this heading"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="install/macos.html">macOS</a><ul>
<li class="toctree-l2"><a class="reference internal" href="install/macos.html#general">General</a></li>
<li class="toctree-l2"><a class="reference internal" href="install/macos.html#system-wide-with-inkscape-extension">System-wide with Inkscape extension</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="install/windows.html">Windows</a><ul>
<li class="toctree-l2"><a class="reference internal" href="install/windows.html#native">Native</a></li>
<li class="toctree-l2"><a class="reference internal" href="install/windows.html#windows-subsystem-for-linux">Windows Subsystem for Linux</a></li>
</ul>
</li>
</ul>
</div>
</section>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="index.html">
<img class="logo" src="_static/boxes-logo.svg" alt="Logo"/>
</a></p>
<div>
<h3><a href="index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Installation</a><ul>
<li><a class="reference internal" href="#requirements">Requirements</a><ul>
<li><a class="reference internal" href="#affine">Affine</a></li>
<li><a class="reference internal" href="#shapely">Shapely</a></li>
<li><a class="reference internal" href="#markdown">Markdown</a></li>
<li><a class="reference internal" href="#setuptools">setuptools</a></li>
<li><a class="reference internal" href="#ps2edit">ps2edit</a></li>
<li><a class="reference internal" href="#python">Python</a></li>
<li><a class="reference internal" href="#sphinx">Sphinx</a></li>
</ul>
</li>
<li><a class="reference internal" href="#running-from-working-dir">Running from working dir</a></li>
<li><a class="reference internal" href="#inkscape">Inkscape</a></li>
<li><a class="reference internal" href="#platform-specific-instructions">Platform specific instructions</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="faq.html"
title="previous chapter">Frequently Asked Questions</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="install/macos.html"
title="next chapter">macOS</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/install.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="install/macos.html" title="macOS"
>next</a> |</li>
<li class="right" >
<a href="faq.html" title="Frequently Asked Questions"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">boxes.py 0.1 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Installation</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2016, Florian Festi.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.3.0.
</div>
</body>
</html>