

<!--
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="./index.html">Overview</a></li>
<li>
  <a href="./subpar.html">Build self-contained python executables.</a>
  <ul>
    <li>
      <a href="./subpar.html#parfile">
        parfile
      </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>
  </ul>
  <h2>Macros</h2>
  <ul>
    <li><a href="#par_binary">par_binary</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="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>


        </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>
