Python: Difference between revisions
m Monospace styling changes on new debug build section |
Add more details on uv installation as usage |
||
Line 307: | Line 307: | ||
=== Using uv === | === Using uv === | ||
<blockquote>A single tool to replace <code>pip</code>, <code>pip-tools</code>, <code>pipx</code>, <code>poetry</code>, <code>pyenv</code>, <code>virtualenv</code>, and more.</blockquote> | <blockquote>A single tool to replace <code>pip</code>, <code>pip-tools</code>, <code>pipx</code>, <code>poetry</code>, <code>pyenv</code>, <code>virtualenv</code>, and more.</blockquote> | ||
As a | uv is written in Rust and does ''not'' need Python as a prerequisite. Use the <code>uv</code> command to initialize Python projects, add Python packages, create or update virtual environments (in <code>.venv</code> folders), etc. as [https://docs.astral.sh/uv/concepts/projects/ described in the uv docs]. Use uv's [https://docs.astral.sh/uv/guides/tools/ tool interface] to install and run Python packages that provide a CLI. | ||
As a system package | |||
<syntaxhighlight lang="nix"> | |||
environment.systemPackages = with pkgs; [ | environment.systemPackages = with pkgs; [ | ||
uv | uv | ||
]; | ]; | ||
</syntaxhighlight>or as a home-manager package<syntaxhighlight lang="nix"> | </syntaxhighlight> | ||
or as a home-manager package | |||
<syntaxhighlight lang="nix"> | |||
home.packages = with pkgs; [ | home.packages = with pkgs; [ | ||
uv | uv | ||
]; | ]; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
If you use uv it's recommended that you install the Python versions you need using the <code>uv python install</code> command, e.g. | |||
<syntaxhighlight lang="python"> | |||
uv python install 3.14 --preview --default | |||
</syntaxhighlight> | |||
You may want to set the <code>UV_PYTHON_DOWNLOADS=never</code> environment variable in your shell to stop uv from downloading Python binaries automatically if needed. Setting <code>environment.localBinInPath = true;</code> is highly recommended, because uv will install binaries in <code>~/.local/bin</code>. | |||
=== Using poetry === | === Using poetry === |