[{'Text': '{"url":"https://docs.astral.sh/uv/concepts/tools/","title":"Tools | uv","description":"... <strong>Tool upgrades will reinstall the tool executables, even if they have not changed</strong>. To reinstall packages during upgrade, use the --reinstall and --reinstall-package options. ... The --with option can be provided multiple times to include additional packages.","extra_snippets":["For example, uv tool install black --prerelease allow followed by uv tool upgrade black will retain the --prerelease allow setting. ... Tool upgrades will reinstall the tool executables, even if they have not changed. To reinstall packages during upgrade, use the --reinstall and --reinstall-package options. ... The --with option can be provided multiple times to include additional packages. The --with option supports package specifications, so a specific version can be requested:","When installing a tool with uv tool install, a virtual environment is created in the uv tools directory. The environment will not be removed unless the tool is uninstalled. If the environment is manually deleted, the tool will fail to run. ... Tool environments are not intended to be mutated directly. It is strongly recommended never to mutate a tool environment manually, e.g., with a pip operation. Unless a specific version is requested, uv tool install will install the latest available of the requested tool.","This uses the same Python version discovery logic as other virtual environments created by uv, but will ignore non-global Python version requests like .python-version files and the requires-python value from a pyproject.toml. The --python option can be used to request a specific version.","$ uv tool install --with-executables-from ansible-core --with mkdocs-material ansible · Note that --with-executables-from differs from --with in that: --with includes additional packages as dependencies but does not install their executables · --with-executables-from includes both the packages as dependencies and installs their executables · Each tool environment is linked to a specific Python version."]}{"url":"https://docs.astral.sh/uv/guides/tools/","title":"Using tools | uv","description":"For example, <strong>uv tool install ruff &gt;=0.3,&lt;0.4 followed by uv tool upgrade ruff will upgrade Ruff to the latest version in the range &gt;=0.3,&lt;0.4</strong>.","extra_snippets":["In this case, using uv run is only beneficial if you want to pin the version of the tool in the project\'s dependencies. When uvx ruff is invoked, uv installs the ruff package which provides the ruff command. However, sometimes the package and command names differ. The --from option can be used to invoke a command from a specific package, e.g., http which is provided by httpie:","By default, uv will use your default Python interpreter (the first it finds) when running, installing, or upgrading tools. You can specify the Python interpreter to use with the --python option. For example, to request a specific Python version when running a tool:","For example, uv tool install ruff >=0.3,<0.4 followed by uv tool upgrade ruff will upgrade Ruff to the latest version in the range >=0.3,<0.4.","$ uv tool install --with-executables-from ansible-core,ansible-lint ansible ... Tool upgrades will respect the version constraints provided when installing the tool."]}{"url":"https://stackoverflow.com/questions/79581046/lock-specific-dependency-versions-with-uvx-uv-tool-run","title":"python - lock specific dependency versions with `uvx` (uv tool run) - Stack Overflow","description":"But I don&#x27;t see a way to pin dependencies to make sure subsequent invocations will not silently auto-update (possibly breaking) something. The docs say: uvx will use the latest available version of the requested tool on the first invocation.","extra_snippets":["But I don\'t see a way to pin dependencies to make sure subsequent invocations will not silently auto-update (possibly breaking) something. The docs say: uvx will use the latest available version of the requested tool on the first invocation.","When installing a tool with uv tool install, a virtual environment is created in the uv tools directory. The environment will not be removed unless the tool is uninstalled. If the environment is manually deleted, the tool will fail to run. ... Sign up to request clarification or add additional context in comments. ... Thanks, this works to ensure the tool is installed/upgraded only when requested.","This will create a virtual environment located within a directory known as the tools directory (run uv tool dir to know where it is) with the tool in question and all dependencies. Subsequent uvx --from jupyterlab jupyter-lab will then use this exact environment instead of creating a new one.","When running a tool with uvx, a virtual environment is stored in the uv cache directory and is treated as disposable, i.e., if you run uv cache clean the environment will be deleted."]}{"url":"https://www.datacamp.com/tutorial/python-uv","title":"Python UV: The Ultimate Guide to the Fastest Python Package Manager | DataCamp","description":"UV can install and manage Python versions directly, replacing the need for tools like pyenv: $ uv python install 3.12 $ uv python install 3.11 3.13 # Install multiple versions at once · Python installations are stored in ~/.local/share/uv/python/ and do not interfere with your system Python. You can also pin a project to a specific Python version:","extra_snippets":["UV can install and manage Python versions directly, replacing the need for tools like pyenv: $ uv python install 3.12 $ uv python install 3.11 3.13 # Install multiple versions at once · Python installations are stored in ~/.local/share/uv/python/ and do not interfere with your system Python. You can also pin a project to a specific Python version:","They\'re also necessary for compatibility with tools and services that don\'t support UV\'s lock file format. You can maintain both files by using UV\'s lock file for development while generating a requirements.txt for deployment. To generate a requirements.txt from a UV lock file, use the following command: ... This creates the text file with pinned versions based on your lock file, making it easy to share your project\'s dependencies in a standard format while still benefiting from UV\'s advanced dependency management during development.","Permanently installed tools are available globally via your PATH, without polluting any project\'s virtual environment. You can update them with uv tool upgrade ruff and list all installed tools with uv tool list.","UV uses a modern dependency resolver that analyzes the entire dependency graph to find a compatible set of package versions that satisfy all requirements. This helps prevent version conflicts and ensures reproducible environments. The resolver considers factors like version constraints, Python version compatibility, and platform-specific requirements to determine the optimal set of packages to install."]}{"url":"https://pydevtools.com/handbook/explanation/uv-complete-guide/","title":"uv: A Complete Guide to Python\'s Fastest Package Manager | pydevtools","description":"uv pip compile takes a loose requirements.in file (or pyproject.toml) and produces a fully resolved requirements.txt with pinned versions and hashes. The --universal flag generates a single requirements file that works across platforms, a feature pip-tools does not offer.","extra_snippets":["You can pin a project to a specific Python version with a .python-version file: ... This writes a .python-version file that uv (and other tools) respect.","Lockfiles are central to reproducible environments. uv.lock pins every transitive dependency to an exact version and records platform-specific resolution so that uv sync produces identical environments on macOS, Linux, and Windows.","Platform-specific details are covered in the dedicated how-to guides for macOS, Linux, and Windows. To keep uv current, see How to upgrade uv.","uv pip compile takes a loose requirements.in file (or pyproject.toml) and produces a fully resolved requirements.txt with pinned versions and hashes. The --universal flag generates a single requirements file that works across platforms, a feature pip-tools does not offer."]}{"question":"How do I install uv?","answer":"On macOS or Linux, run `curl -LsSf https://astral.sh/<strong>uv</strong>/<strong>install</strong>.sh | sh`. On Windows PowerShell, run `powershell -c \\"irm https://astral.sh/<strong>uv</strong>/<strong>install</strong>.ps1 | iex\\"`. Alternatives include `brew <strong>install</strong> <strong>uv</strong>` on macOS and `pip <strong>install</strong> <strong>uv</strong>` if Python is already <strong>installed</strong>. <strong>After</strong> <strong>installation</strong>, confirm it works with `<strong>uv</strong> --version`.","title":"uv: A Complete Guide to Python\'s Fastest Package Manager | pydevtools","url":"https://pydevtools.com/handbook/explanation/uv-complete-guide/"}{"question":"What is uv?","answer":"<strong>uv</strong> is a Python package and project manager built by Astral. It replaces pip, pyenv, pipx, virtualenv, and pip-<strong>tools</strong> with a single binary, handling interpreter <strong>installation</strong>, virtual environments, dependency resolution, lockfiles, and CLI <strong>tool</strong> execution. Written in Rust, it ships with no Python dependency and bootstraps an entire Python environment from scratch.","title":"uv: A Complete Guide to Python\'s Fastest Package Manager | pydevtools","url":"https://pydevtools.com/handbook/explanation/uv-complete-guide/"}{"question":"Should I use uv for new Python projects?","answer":"<strong>uv</strong> is the strongest default for new Python projects today. A single `<strong>uv</strong> init` produces a standards-compliant pyproject.toml, a cross-platform lockfile, and a virtual environment, with no other <strong>tool</strong> setup required. The exception is projects that depend on non-Python libraries (CUDA binaries, scientific C/Fortran extensions) where conda still handles cross-language dependencies in ways <strong>uv</strong> cannot.","title":"uv: A Complete Guide to Python\'s Fastest Package Manager | pydevtools","url":"https://pydevtools.com/handbook/explanation/uv-complete-guide/"}{"question":"How fast is uv compared to pip?","answer":"On benchmark runs of 23 packages, pip takes 13.1 seconds for a cold-cache <strong>install</strong> <strong>while</strong> <strong>uv</strong> finishes in 0.87 seconds, about 15x faster. With a warm cache, pip takes 6.6 seconds and <strong>uv</strong> takes 0.15 seconds, about 44x faster. Virtual environment creation is roughly 56x faster (35ms for `<strong>uv</strong> venv` versus 1.95s for `python -m venv`).","title":"uv: A Complete Guide to Python\'s Fastest Package Manager | pydevtools","url":"https://pydevtools.com/handbook/explanation/uv-complete-guide/"}{"question":"Does uv work with existing pip and Poetry projects?","answer":"Yes. The `<strong>uv</strong> pip` interface is drop-in compatible with pip commands like `<strong>uv</strong> pip <strong>install</strong> -r requirements.txt`, providing an immediate speed boost without changing project structure. For Poetry projects, <strong>uv</strong> reads the same pyproject.toml-based workflow, and the migrate-to-<strong>uv</strong> <strong>tool</strong> converts Poetry\'s lockfile and metadata format to PEP 621 automatically.","title":"uv: A Complete Guide to Python\'s Fastest Package Manager | pydevtools","url":"https://pydevtools.com/handbook/explanation/uv-complete-guide/"}{"mutated_by_goggles":false,"url":"https://stackoverflow.com/questions/79475051/whats-the-difference-between-uv-lock-upgrade-and-uv-sync","data":{"forum_name":"stackoverflow.com"}}{"mutated_by_goggles":false,"url":"https://www.reddit.com/r/learnpython/comments/1r9c948/am_i_dumb_i_dont_understand_uv_tools/","data":{"forum_name":"r/learnpython","num_answers":16,"score":"0","title":"Am I dumb? I don\'t understand uv tools","question":"<p>\\n      I&#39;m somewhat new to uv and &quot;proper&quot; python project management. While I&#39;ve been using uv for a while now, I still don&#39;t get what tools are.\\n    </p><p>\\n      From <a rpl class=\\"relative pointer-events-auto a cursor-pointer\\n  \\n  \\n  \\n  \\n  underline\\n  \\" href=\\"https://docs.astral.sh/uv/guides/tools/\\" rel=\\"noopener nofollow ugc\\" target=\\"_blank\\">https://docs.astral.sh/uv/guides/tools/</a>\\n    </p><blockquote>\\n      <p>\\n      &quot;Many Python packages provide applications that can be used as tools&quot;\\n    </p>\\n    </blockquote><p>\\n      In my mind, A-python-package-is-a-python-package. What exactly distinguishes one that can be used as a tool vs. one that cannot?\\n    </p><blockquote>\\n      <p>\\n      If your project has a flat structure, e.g., instead of using a src directory for modules, the project itself does not need to be installed and uvx is fine. In this case, using uv run is only beneficial if you want to pin the version of the tool in the project&#39;s dependencies.\\n    </p>\\n    </blockquote><p>\\n      Not using a src directory for modules does not necessarily imply a flat structure. So this whole paragraph is hard to follow.\\n    </p><blockquote>\\n      <p>\\n      If a tool is used often, it is useful to install it to a persistent environment and add it to the PATH instead of invoking uvx repeatedly.\\n    </p>\\n    </blockquote><blockquote>\\n      <p>\\n      To install ruff: uv tool install ruff\\n    </p>\\n    </blockquote><blockquote>\\n      <p>\\n      When a tool is installed, its executables are placed in a bin directory in the PATH which allows the tool to be run without uv. If it&#39;s not on the PATH, a warning will be displayed and uv tool update-shell can be used to add it to the PATH.\\n    </p>\\n    </blockquote><p>\\n      I understand what this is saying, but I don&#39;t really get why you&#39;d do this over <code>uv add ruff</code>. Isn&#39;t the whole point of venvs to keep everything within the venv?\\n    </p><p>\\n      Finally - how does all this tool business relate to the [tool] sections I frequently see in <code>pyproject.toml</code> files? Or are these unrelated concepts?\\n    </p>","top_comment":"In my mind a tool is a program which is run independently of your project. This is a broad statement, I know, but it is the best descriptor. Ruff, for example, is a tool. You don\'t import ruff into your project, but you use it for linting and formatting your code. mypy is another example. There are projects which provide tools AND provide an importable  library. pytest for example. However, critically, they often provide a part of the project that runs independently of your code. Feel free to ask questions. It can be a difficult topic."}}{"mutated_by_goggles":false,"url":"https://github.com/astral-sh/uv/issues/6747","data":{"forum_name":"github.com","num_answers":5,"title":"List specifier used to install a tool","top_comment":"Currently (uv v0.3.5) if a constraint is used with uv tool install the version/restriction is pinned and subsequent uv tool upgrade commands might not update to a newer release. E.g. `uv tool insta..."}}{"mutated_by_goggles":false,"url":"https://github.com/astral-sh/uv/issues/6781","data":{"forum_name":"github.com","num_answers":16,"title":"Add the option to `uv add` to pin to latest version of package","top_comment":"Current behaviour When you run uv add without specifying a version constraint, it defaults to >= latest version. I think this is a good default. uv init --app --python 3.12.5 uv add black cat py..."}}{"mutated_by_goggles":false,"url":"https://www.reddit.com/r/learnpython/comments/1pn4r5k/problem_installing_my_uv_tools/","data":{"forum_name":"r/learnpython","num_answers":5,"score":"5","title":"Problem installing my uv tools...","question":"<p>\\n      [SOLVED, see end of post]\\n    </p><p>\\n      I try to use <code>uv tool install .</code> to install as cli commands a couple of scripts which live in a very legacy project, needing to run with python3.8, and it doesn&#39;t work and I can&#39;t find why T___T\\n    </p><p>\\n      my pyproject.toml looks like that, for the relevant bits:\\n    </p><pre>\\n[project]\\nname = &quot;foo&quot;\\nversion = &quot;x.x.x&quot;\\ndescription = &quot;&quot;\\nreadme = &quot;README.md&quot;\\nrequires-python = &quot;&gt;=3.8,&lt;3.9&quot;\\n\\ndependencies = [...]\\n\\n[build-system]\\nrequires = [&quot;uv_build&gt;=0.9.17,&lt;0.10.0&quot;]\\nbuild-backend = &quot;uv_build&quot;\\n\\n[project.scripts]\\nitem = &quot;foo.item:main&quot;\\nset = &quot;foo.set:main&quot;\\n</pre><p>\\n      From the project directory, if I run:\\n    </p><pre>\\n&gt; uv run item\\n&gt; uv run set</pre><p>\\n      It works, they are launched and run.\\n    </p><p>\\n      Then if I install them as tools, the installation works:\\n    </p><pre>\\n&gt; uv tool install .\\nResolved 62 packages in 686ms\\nAudited 62 packages in 1ms\\nInstalled 2 executables: item, set</pre><p>\\n      But after that if I try to run them, it fails:\\n    </p><pre>\\n&gt; item\\nTraceback (most recent call last):\\n  File &quot;/home/marc/.local/bin/learning_item&quot;, line 4, in &lt;module&gt;\\n[...]\\nModuleNotFoundError: No module named &#39;boto.vendored.six.moves&#39;</pre><p>\\n      I know boto is deprecated, that&#39;s one of the reason I stick to Python3.8. But I think this failure is caused by the fact that my script are run with a newer python and not the one defined in the project.\\n    </p><p>\\n      from the project:\\n    </p><pre>\\n$ uv run python --version\\nPython 3.8.18</pre><p>\\n      but if I get the shebang from ~/.local/bin/item and run it with --version, I get:\\n    </p><pre>\\n&gt; /home/corpsmoderne/.local/share/uv/tools/foo/bin/python3 --version\\nPython 3.13.2</pre><p>\\n      Did I missed something here? Do I have to specify something in my pyproject to force python 3.8, or is it a bug in uv tool installation process?\\n    </p><p>\\n      Edit: it works when forcing the python version when installing:\\n    </p><pre>\\n&gt; uv tool install . --python 3.8</pre>","top_comment":"I\'m not convinced that the dependencies list is not a relevant part of your file when the error is ModuleNotFound... But it could be this? https://docs.astral.sh/uv/concepts/tools/#python-versions \\"Each tool environment is linked to a specific Python version. This uses the same Python version discovery logic as other virtual environments created by uv, but will ignore non-global Python version requests like .python-version files and the requires-python value from a pyproject.toml.\\""}}{"mutated_by_goggles":false,"url":"https://github.com/astral-sh/uv/issues/8067","data":{"forum_name":"github.com","num_answers":11,"title":"`uv tool install --reinstall` not working as documented","top_comment":"The docs suggest that uv tool install --reinstall should reinstall all packages: $ uv --version uv 0.4.20 (0e1b25a53 2024-10-08) $ uv tool install --help ... --reinstall Reinstall all packages, reg..."}}{"mutated_by_goggles":false,"url":"https://www.reddit.com/r/learnpython/comments/1rcphaf/uv_tool_install_git_ignores_the_pinned_python/","data":{"forum_name":"r/learnpython","num_answers":3,"score":"0","title":"uv tool install git+ ignores the pinned python version","question":"<p>\\n      Hi,\\n    </p><p>\\n      My project contains .python-version file with 3.13. When I build and install the project via\\n    </p><p>\\n      uv build\\n    </p><p>\\n      uv tool install dist/...whl\\n    </p><p>\\n      the app runs on 3.13.\\n    </p><p>\\n      When I test it on another box like\\n    </p><p>\\n      uv tool install git+<a rpl class=\\"relative pointer-events-auto a cursor-pointer\\n  \\n  \\n  \\n  \\n  underline\\n  \\" href=\\"https://github.com/me/myproject\\" rel=\\"noopener nofollow ugc\\" target=\\"_blank\\">https://github.com/me/myproject</a>\\n    </p><p>\\n      the installed app runs on the current system version (3.14). Is there a way to make uv respect the .python-version on github?\\n    </p>","top_comment":"From uv documentation https://docs.astral.sh/uv/concepts/tools/#python-versions Each tool environment is linked to a specific Python version. This uses the same Python version discovery logic as other virtual environments created by uv, but will ignore non-global Python version requests like .python-version files and the requires-python value from a pyproject.toml. The --python option can be used to request a specific version. See the Python version documentation for more details."}}{"mutated_by_goggles":false,"url":"https://www.reddit.com/r/Python/comments/1ex6n9k/uv_unified_python_packaging/","data":{"forum_name":"r/Python","num_answers":179,"score":"586","title":"uv: Unified Python packaging","question":"<p>\\n      <a rpl class=\\"relative pointer-events-auto a cursor-pointer\\n  \\n  \\n  \\n  \\n  underline\\n  \\" href=\\"https://astral.sh/blog/uv-unified-python-packaging\\" rel=\\"noopener nofollow ugc\\" target=\\"_blank\\">https://astral.sh/blog/uv-unified-python-packaging</a>\\n    </p><p>\\n      This is a new release of uv that moves it beyond just a pip alternative. There&#39;s cross platform lock files, tool management, Python installation, script execution and more.\\n    </p>","top_comment":"https://astral.sh/blog/uv-unified-python-packaging This is a new release of uv that moves it beyond just a pip alternative…"}}{"mutated_by_goggles":false,"url":"https://www.reddit.com/r/OpenWebUI/comments/1izq7l1/mac_1531_manual_install_using_uv_where_are_my/","data":{"forum_name":"r/OpenWebUI","num_answers":13,"score":"3","title":"Mac 15.3.1 - Manual Install using uv - where are my files/folders?","question":"<p>\\n      <strong>TLDR:</strong> <strong>Where does uv put the folders/ files, like</strong> <code>backend/open_webui/</code>**?**\\n    </p><p>\\n      I decided to ditch docker and just install using uv based on the OWUI docs instructions. This was how I installed it:<br><code>DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve --port 4444</code>\\n    </p><p>\\n      The installation works flawlessly, a lot fewer bugs, faster, I&#39;m so glad I ditched Docker. But where are the actual folders and files stored on my Mac? I installed from my <code>/Users/josh/</code> folder, but I can&#39;t locate actual files, for example, I specifically want to edit one file bc it needs a small edit to make SST actually work correctly:\\n    </p><p>\\n      <code>backend/open_webui/routers/audio.py</code>\\n    </p><p>\\n      But I can&#39;t even find the &quot;backend&quot; folder anywhere. I asked my ChatGPT, Perplexity, and Googled it myself for 2 hours, I can&#39;t find an answer. <strong>Where does uv put the files?</strong>\\n    </p><p>\\n      OWUI v0.5.16<br>Apple M1 Max 64gb<br>Sequoia 15.3.1\\n    </p>","top_comment":"If you\'re using uv and want a more permanent install of open-webui, use uv tool install open-webui and uv tool upgrade open-webui for updates. From what I can tell, uvx or uv tool run is meant for temporary runs so the actual files might not persist. If you use uv tool install, you\'ll find open-webui in ~/.local/bin, and it\'s usually symlinked to ~/.local/share/uv/tools/open-webui."}}{"mutated_by_goggles":false,"url":"https://www.reddit.com/r/learnpython/comments/1fzy4nt/anyone_not_using_uv_why_not/","data":{"forum_name":"r/learnpython","num_answers":55,"score":"0","title":"Anyone not using uv? Why not? ","question":"<p>\\n      I was using rye because awesome but slow.\\n    </p><p>\\n      Now using uv because awesome and faaaaaast.\\n    </p><p>\\n      Is there any reason not to use uv?\\n    </p>","top_comment":"I know none of these abreviations."}}{"mutated_by_goggles":false,"url":"https://www.reddit.com/r/blender/comments/iadaav/changes_in_uv_editor_not_updating_in_viewport/","data":{"forum_name":"r/blender","num_answers":3,"score":"1","title":"Changes in UV editor not updating in viewport","question":"<p>\\n      \\n    </p> <figure class=\\"rte-media\\">\\n       <a href=\\"https://preview.redd.it/changes-in-uv-editor-not-updating-in-viewport-v0-ffi7oaf7s7h51.png?width=759&amp;format=png&amp;auto=webp&amp;s=04260c4256a94178fedd2288c48473e683ff042b\\" title=\\"Image from r/blender - No matter how I rotate it or scale the selected faces in UV editor it doesn&#39;t update in the viewport. Any suggestions? \\" rel=\\"noopener noreferrer ugc\\" target=\\"_blank\\">\\n              <img src=\\"https://preview.redd.it/changes-in-uv-editor-not-updating-in-viewport-v0-ffi7oaf7s7h51.png?width=759&amp;format=png&amp;auto=webp&amp;s=04260c4256a94178fedd2288c48473e683ff042b\\" alt=\\"r/blender - No matter how I rotate it or scale the selected faces in UV editor it doesn&#39;t update in the viewport. Any suggestions? \\" class=\\"mb-0 block w-fit my-0 mx-auto max-w-[100%] non-lightboxed-content\\" width=\\"750\\" height=\\"auto\\" srcset=\\"https://preview.redd.it/changes-in-uv-editor-not-updating-in-viewport-v0-ffi7oaf7s7h51.png?width=320&amp;crop=smart&amp;auto=webp&amp;s=aca58e7179321e93ed59b39b07d1231492930e76 320w, https://preview.redd.it/changes-in-uv-editor-not-updating-in-viewport-v0-ffi7oaf7s7h51.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=81d18edba3c63c65893ce305c6834c25c8c16e22 640w, https://preview.redd.it/changes-in-uv-editor-not-updating-in-viewport-v0-ffi7oaf7s7h51.png?width=759&amp;format=png&amp;auto=webp&amp;s=04260c4256a94178fedd2288c48473e683ff042b 759w\\" sizes=\\"(min-width: 1415px) 750px, (min-width: 768px) 50vw, 100vw\\" style=\\"aspect-ratio:750/416.99604743083\\" loading=\\"eager\\">\\n            </a>\\n      <figcaption class=\\"rte-media-caption\\">No matter how I rotate it or scale the selected faces in UV editor it doesn&#39;t update in the viewport. Any suggestions? </figcaption>\\n    </figure>","top_comment":"Go into Object data properties (Just above the Material properties) and click \'UV Maps\'. Next to each uv map is a camera button, click the camera to enable which UV map you want to use"}}'}]