

<!--
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>)</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>
  </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>)</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>
  </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="http://bazel.io">Home</a></li>
              <li><a href="https://github.com/bazelbuild">GitHub</a></li>
            </ul>
          </div>
        </footer>
      </main>
    </div>
  </body>
</html>
