UnknownSec Bypass
403
:
/
proc
/
thread-self
/
root
/
proc
/
self
/
root
/
usr
/
share
/
doc
/
python3
/
python-policy.html
/ [
drwxr-xr-x
]
Menu
Upload
Mass depes
Mass delete
Terminal
Info server
About
name :
programs.html
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Python Programs</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" title="Debian Python Policy" /><link rel="up" href="index.html" title="Debian Python Policy" /><link rel="prev" href="module_packages.html" title="Chapter 3. Packaged Modules" /><link rel="next" href="embed.html" title="Chapter 5. Programs Embedding Python" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Python Programs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="module_packages.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="embed.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="programs"></a>Chapter 4. Python Programs</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="programs.html#interpreter-directive">4.1. Interpreter directive (“Shebang”)</a></span></dt><dt><span class="section"><a href="programs.html#version_indep_progs">4.2. Programs using the default Python</a></span></dt><dd><dl><dt><span class="section"><a href="programs.html#current_version_progs">4.2.1. Programs Shipping Private Modules</a></span></dt></dl></dd><dt><span class="section"><a href="programs.html#version_dep_progs">4.3. Programs Using a Particular Python Version</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="interpreter-directive"></a>4.1. Interpreter directive (“Shebang”)</h2></div></div></div><p> Executables written for interpretation by Python must use an appropriate interpreter directive, or “shebang”, as the first line of the program. This line should be of the form <code class="literal">#!<em class="replaceable"><code>interpreter_location</code></em></code>. See <a class="xref" href="python.html#interpreter_name" title="2.4.1. Interpreter Name">Section 2.4.1, “Interpreter Name”</a> for the interpreter name to use. </p><p> As noted in <a class="xref" href="python.html#interpreter_loc" title="2.4.2. Interpreter Location">Section 2.4.2, “Interpreter Location”</a>, the form <code class="literal">#!/usr/bin/env <em class="replaceable"><code>interpreter_name</code></em></code> is deprecated. </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="version_indep_progs"></a>4.2. Programs using the default Python</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="programs.html#current_version_progs">4.2.1. Programs Shipping Private Modules</a></span></dt></dl></div><p> A package that installs a program that can be run by any version of Python 3 must declare a dependency on <code class="literal">python3</code>, with a versioned dependency if necessary. </p><p> A package that installs a program that can be run by any version of Python 2 must declare a dependency on <code class="literal">python2</code>, with a versioned dependency if necessary. </p><p> If the program needs the public Python module <code class="literal">foo</code>, the package must depend on the binary package that installs the <code class="literal">foo</code> module. See <a class="xref" href="module_packages.html#package_names" title="3.3. Module Package Names">Section 3.3, “Module Package Names”</a> for the naming of packages that install public Python modules. </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="current_version_progs"></a>4.2.1. Programs Shipping Private Modules</h3></div></div></div><p> A program that specifies <code class="filename">python3</code> as its interpreter may require its own private Python modules. These modules should be installed in <code class="filename">/usr/share/<em class="replaceable"><code>module</code></em></code>, or <code class="filename">/usr/lib/<em class="replaceable"><code>module</code></em></code> if the modules are architecture-dependent (e.g. extensions). </p><p> The rules explained in <a class="xref" href="module_packages.html#byte_compilation" title="3.7. Modules Byte-Compilation">Section 3.7, “Modules Byte-Compilation”</a> apply to those private modules: the byte-compiled modules must not be shipped with the binary package, they should be generated in the package's post-install script using the current default Python version, and removed in the pre-remove script. Modules should be byte-compiled using the current default Python version. </p><p> Programs that have private compiled extensions must either handle multiple version support themselves, or declare a tight dependency on the current Python version (e.g. <code class="literal">Depends: python3 (>= 3.5), python3 (<< 3.6)</code>. </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="version_dep_progs"></a>4.3. Programs Using a Particular Python Version</h2></div></div></div><p> A program which requires a specific minor version of Python must specify the versioned interpreter <code class="filename">python<em class="replaceable"><code>X</code></em>.<em class="replaceable"><code>Y</code></em></code>. The package that installs the programs must also specify a dependency on <code class="literal">python<em class="replaceable"><code>X</code></em>.<em class="replaceable"><code>Y</code></em></code> and on any packages that install necessary modules. </p><p> The notes on installation directories and byte-compilation for programs that support any version of Python also apply to programs supporting only a single Python version. Modules to be byte-compiled should use the same Python version as the package itself. </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="module_packages.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="embed.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Packaged Modules </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5. Programs Embedding Python</td></tr></table></div></body></html>
Copyright © 2025 - UnknownSec