

<!--
Documentation generated by Skydoc
-->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width initial-scale=1" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <title>Build self-contained python executables.</title>

    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700" type="text/css">
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://code.getmdl.io/1.1.1/material.green-light_blue.min.css">
    <script defer src="https://code.getmdl.io/1.1.1/material.min.js"></script>
    <link rel="stylesheet" href="./main.css">
  </head>
  <body>
    <div class="mdl-layout mdl-js-layout mdl-layout--fixed-drawer
      mdl-layout--fixed-header">
      <header class="mdl-layout__header">
        <div class="mdl-layout__header-row">
          <span class="mdl-layout-title">Build self-contained python executables.</span>
        </div>
      </header>
      <div class="mdl-layout__drawer">
        <span class="mdl-layout-title">Bazel</span>
        <nav class="drawer-nav">
          <ul class="drawer-nav">
            
<li><a href="./index.html">Overview</a></li>
<li>
  <a href="./debug.html">debug Rules</a>
  <ul>
  </ul>
</li>
<li>
  <a href="./subpar.html">Build self-contained python executables.</a>
  <ul>
    <li>
      <a href="./subpar.html#parfile">
        parfile
      </a>
    </li>
    <li>
      <a href="./subpar.html#parfile_test">
        parfile_test
      </a>
    </li>
  </ul>
</li>

          </ul>
        </nav>
      </div>

      <main class="mdl-layout__content">
        <div class="page-content">
          <h1>Build self-contained python executables.</h1>

<nav class="toc">
  <h2>Rules</h2>
  <ul>
    <li><a href="#parfile">parfile</a></li>
    <li><a href="#parfile_test">parfile_test</a></li>
  </ul>
  <h2>Macros</h2>
  <ul>
    <li><a href="#par_binary">par_binary</a></li>
    <li><a href="#par_test">par_test</a></li>
  </ul>
</nav>
          <hr>

          <h2 id="par_binary">par_binary</h2>

          <pre>par_binary(<a href="#par_binary.name">name</a>)</pre>

          <p>An executable Python program.</p>
<p>par_binary() is a drop-in replacement for py_binary() that also
builds a self-contained, single-file executable for the
application, with a .par file extension.</p>
<p>The <code>name</code> attribute shouldn't include the <code>.par</code> file extension,
it's added automatically.  So, for a rule like
<code>par_binary(name="myname")</code>, build the file <code>myname.par</code> by doing
<code>bazel build //mypackage:myname.par</code></p>
<p>See <a href="http://www.bazel.io/docs/be/python.html#py_binary">py_binary</a>
for arguments and usage.</p>


          <h3 id="par_binary_args">Attributes</h3>

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="par_binary.name">
      <td><code>name</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p>
        <p>A unique name for this rule.</p>
      </td>
    </tr>
  </tbody>
</table>
          <hr>

          <h2 id="par_test">par_test</h2>

          <pre>par_test(<a href="#par_test.name">name</a>)</pre>

          <p>An executable Python test.</p>
<p>Just like par_binary, but for py_test instead of py_binary.  Useful if you
specifically need to test a module's behaviour when used in a .par binary.</p>


          <h3 id="par_test_args">Attributes</h3>

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="par_test.name">
      <td><code>name</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p>
        <p>A unique name for this rule.</p>
      </td>
    </tr>
  </tbody>
</table>
          <hr>

          <h2 id="parfile">parfile</h2>

          <pre>parfile(<a href="#parfile.name">name</a>, <a href="#parfile.src">src</a>, <a href="#parfile.compiler">compiler</a>, <a href="#parfile.default_python_version">default_python_version</a>, <a href="#parfile.imports">imports</a>, <a href="#parfile.main">main</a>, <a href="#parfile.zip_safe">zip_safe</a>)</pre>

          <p>A self-contained, single-file Python program, with a .par file extension.</p>
<p>You probably want to use par_binary() instead of this.</p>
<p>TODO(b/27502830): A directory foo.par.runfiles is also created. This
is a bug, don't use or depend on it.</p>


          <h3 id="parfile_args">Attributes</h3>

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="parfile.name">
      <td><code>name</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p>
        <p>A unique name for this rule.</p>
      </td>
    </tr>
    <tr id="parfile.src">
      <td><code>src</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; Required</code></p>
        <p>A py_binary() target</p>
      </td>
    </tr>
    <tr id="parfile.compiler">
      <td><code>compiler</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; Optional; Default is //compiler:compiler.par</code></p>
        <p>Internal use only.</p>
      </td>
    </tr>
    <tr id="parfile.default_python_version">
      <td><code>default_python_version</code></td>
      <td>
        <p><code>String; Required</code></p>
        <p>A string specifying the default Python major version to use when building this par file.</p>
<p>See <a href="http://www.bazel.io/docs/be/python.html#py_binary.default_python_version">py_binary.default_python_version</a></p>
      </td>
    </tr>
    <tr id="parfile.imports">
      <td><code>imports</code></td>
      <td>
        <p><code>List of strings; Optional; Default is []</code></p>
        <p>List of import directories to be added to the PYTHONPATH.</p>
<p>See <a href="http://www.bazel.io/docs/be/python.html#py_binary.imports">py_binary.imports</a></p>
      </td>
    </tr>
    <tr id="parfile.main">
      <td><code>main</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; Required</code></p>
        <p>The name of the source file that is the main entry point of
the application.</p>
<p>See <a href="http://www.bazel.io/docs/be/python.html#py_binary.main">py_binary.main</a></p>
      </td>
    </tr>
    <tr id="parfile.zip_safe">
      <td><code>zip_safe</code></td>
      <td>
        <p><code>Boolean; Optional; Default is True</code></p>
        <p>Whether to import Python code and read datafiles directly
from the zip archive.  Otherwise, if False, all files are
extracted to a temporary directory on disk each time the
par file executes.</p>
      </td>
    </tr>
  </tbody>
</table>
          <hr>

          <h2 id="parfile_test">parfile_test</h2>

          <pre>parfile_test(<a href="#parfile_test.name">name</a>, <a href="#parfile_test.src">src</a>, <a href="#parfile_test.compiler">compiler</a>, <a href="#parfile_test.default_python_version">default_python_version</a>, <a href="#parfile_test.imports">imports</a>, <a href="#parfile_test.main">main</a>, <a href="#parfile_test.zip_safe">zip_safe</a>)</pre>

          <p>Identical to par_binary, but the rule is marked as being a test.</p>
<p>You probably want to use par_test() instead of this.</p>


          <h3 id="parfile_test_args">Attributes</h3>

<table class="params-table">
  <colgroup>
    <col class="col-param" />
    <col class="col-description" />
  </colgroup>
  <tbody>
    <tr id="parfile_test.name">
      <td><code>name</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p>
        <p>A unique name for this rule.</p>
      </td>
    </tr>
    <tr id="parfile_test.src">
      <td><code>src</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; Required</code></p>
        <p>A py_binary() target</p>
      </td>
    </tr>
    <tr id="parfile_test.compiler">
      <td><code>compiler</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; Optional; Default is //compiler:compiler.par</code></p>
        <p>Internal use only.</p>
      </td>
    </tr>
    <tr id="parfile_test.default_python_version">
      <td><code>default_python_version</code></td>
      <td>
        <p><code>String; Required</code></p>
        <p>A string specifying the default Python major version to use when building this par file.</p>
<p>See <a href="http://www.bazel.io/docs/be/python.html#py_binary.default_python_version">py_binary.default_python_version</a></p>
      </td>
    </tr>
    <tr id="parfile_test.imports">
      <td><code>imports</code></td>
      <td>
        <p><code>List of strings; Optional; Default is []</code></p>
        <p>List of import directories to be added to the PYTHONPATH.</p>
<p>See <a href="http://www.bazel.io/docs/be/python.html#py_binary.imports">py_binary.imports</a></p>
      </td>
    </tr>
    <tr id="parfile_test.main">
      <td><code>main</code></td>
      <td>
        <p><code><a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; Required</code></p>
        <p>The name of the source file that is the main entry point of
the application.</p>
<p>See <a href="http://www.bazel.io/docs/be/python.html#py_binary.main">py_binary.main</a></p>
      </td>
    </tr>
    <tr id="parfile_test.zip_safe">
      <td><code>zip_safe</code></td>
      <td>
        <p><code>Boolean; Optional; Default is True</code></p>
        <p>Whether to import Python code and read datafiles directly
from the zip archive.  Otherwise, if False, all files are
extracted to a temporary directory on disk each time the
par file executes.</p>
      </td>
    </tr>
  </tbody>
</table>


        </div>

        <footer class="mdl-mini-footer">
          <div class="mdl-mini-footer__left-section">
            <div class="mdl-logo">Bazel</div>
            <ul class="mdl-mini-footer__link-list">
              <li><a href="https://bazel.build">Home</a></li>
              <li><a href="https://github.com/bazelbuild">GitHub</a></li>
            </ul>
          </div>
        </footer>
      </main>
    </div>
  </body>
</html>
