mirror of
https://github.com/tiyn/wiki.git
synced 2026-07-26 04:21:34 +02:00
Python: Added Shebang Usage
This commit is contained in:
@@ -35,6 +35,44 @@ There are similar repositories and resources for functions that are outside the
|
||||
shells.
|
||||
Because of that and their issue regarding compatibility they will not be mentioned here.
|
||||
|
||||
### Shebangs
|
||||
|
||||
A shebang specifies which interpreter should execute a script.
|
||||
It is written as the first line of the file and starts with `#!`.
|
||||
|
||||
For example, a [POSIX shell](#unix-shells) script typically begins with the following.
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
```
|
||||
|
||||
A [Bash](#unix-shells) script commonly uses the following line.
|
||||
|
||||
```sh
|
||||
#!/usr/bin/env bash
|
||||
```
|
||||
|
||||
Using `/usr/bin/env` causes the interpreter to be resolved through the current `PATH` instead of
|
||||
using a fixed path.
|
||||
This makes scripts more portable and allows them to use interpreters provided by virtual
|
||||
environments—for example
|
||||
[Pythons virtual environments](/wiki/programming_language/python.md#using-virtual-environments)—or
|
||||
other tools.
|
||||
|
||||
To execute a script directly, it first has to be marked as executable.
|
||||
|
||||
```sh
|
||||
chmod +x <script>
|
||||
```
|
||||
|
||||
It can then be started directly.
|
||||
|
||||
```sh
|
||||
./<script>
|
||||
```
|
||||
|
||||
The operating system will automatically invoke the interpreter specified by the shebang.
|
||||
|
||||
### Symbolic Links using `ln`
|
||||
|
||||
`ln` is a command to create links between files and folders.
|
||||
|
||||
@@ -88,6 +88,23 @@ python3.9 --version
|
||||
|
||||
This section addresses the usage of Python.
|
||||
|
||||
### Executable Python Scripts
|
||||
|
||||
Python scripts can be made directly executable without explicitly calling the Python executable
|
||||
itself every time.
|
||||
For general information about shebangs, executable scripts and the `chmod +x` command, refer to the
|
||||
corresponding section in the [Shell article](/wiki/linux/shell.md#shebangs).
|
||||
|
||||
For Python it is recommended to use the following shebang.
|
||||
|
||||
```py
|
||||
#!/usr/bin/env python
|
||||
```
|
||||
|
||||
Using `/usr/bin/env python` makes the script compatible with
|
||||
[virtual environments](#using-virtual-environments), [uv](/wiki/programming_language/python/uv.md)
|
||||
projects and other Python environment managers.
|
||||
|
||||
### Convert `.ipynb` Files to `.py` Files and Back
|
||||
|
||||
Jupyter notebooks in the `.ipynb` format can easily be converted to normal Python files using
|
||||
|
||||
@@ -8,12 +8,26 @@ dependencies.
|
||||
## Setup
|
||||
|
||||
Refer to the [official installation guide](https://docs.astral.sh/uv/getting-started/installation/)
|
||||
to install `uv` on your operating system.
|
||||
to install uv on your operating system.
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of uv.
|
||||
|
||||
### Executable Scripts
|
||||
|
||||
uv fully supports Python scripts that use the standard Python shebang.
|
||||
|
||||
```py
|
||||
#!/usr/bin/env python
|
||||
```
|
||||
|
||||
This allows scripts to automatically use the Python interpreter provided by the current uv project
|
||||
or [virtual environment](/wiki/programming_language/python.md#using-virtual-environments).
|
||||
|
||||
For a general explanation of shebangs and executable scripts, refer to the
|
||||
[Shell article](/wiki/linux/shell.md#shebangs).
|
||||
|
||||
### Managing Python Versions
|
||||
|
||||
Python versions can be installed and pinned for the current project by replacing
|
||||
|
||||
Reference in New Issue
Block a user