Don't explicitly install Python. Use uv sync instead of uv add. (#540)

* Don't explicitly install Python. Use uv sync instead of uv add.

* updates

* update

* updated 3.11 workflows

---------

Co-authored-by: rasbt <mail@sebastianraschka.com>
This commit is contained in:
Tim Hopper 2025-02-19 11:42:13 -05:00 committed by GitHub
parent 7bd36dccb4
commit 1039bf9b80
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 29 additions and 37 deletions

View File

@ -33,13 +33,13 @@ jobs:
- name: Set up Python (uv)
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install uv and dependencies
shell: bash
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.10
uv python install 3.11
uv add . --dev
uv pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
uv add pytest-ruff nbval

View File

@ -33,13 +33,13 @@ jobs:
- name: Set up Python (uv)
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install uv and dependencies
shell: bash
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.10
uv python install 3.11
uv add . --dev
uv pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
uv add pytest-ruff nbval

View File

@ -31,12 +31,12 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install dependencies
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.10
uv python install 3.11
uv add . --dev
uv pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
uv add torch==${{ matrix.pytorch-version }}

View File

@ -33,7 +33,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Create Virtual Environment and Install Dependencies
run: |

View File

@ -27,12 +27,12 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.11"
- name: Install dependencies
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.10
uv python install 3.11
uv add . --dev
uv pip install -r ch05/07_gpt_to_llama/tests/test-requirements-extra.txt
uv add pytest-ruff nbval

View File

@ -29,7 +29,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- name: Install dependencies
shell: bash
@ -37,7 +37,7 @@ jobs:
export PATH="$HOME/.local/bin:$PATH"
pip install --upgrade pip
pip install uv
uv venv --python=python3.10
uv venv --python=python3.11
source .venv/Scripts/activate
pip install -r requirements.txt # because of dependency issue on Windows when using `uv pip`
pip install tensorflow-io-gcs-filesystem==0.31.0 # Explicit for Windows

View File

@ -18,12 +18,12 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- name: Install dependencies
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.10
uv python install 3.11
uv add . --dev
uv add pytest-ruff pytest-check-links
# Current version of retry doesn't work well if there are broken non-URL links

View File

@ -18,12 +18,12 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- name: Install codespell
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.10
uv python install 3.11
uv add . --dev
uv add codespell

View File

@ -14,11 +14,11 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.11'
- name: Install ruff (a faster flake 8 equivalent)
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.10
uv python install 3.11
uv add . --dev
uv add ruff

View File

@ -50,7 +50,7 @@ If it returns 3.10 or newer, no further action is required.
&nbsp;
> [!NOTE]
> I recommend installing a Python version that is at least 2 versions older than the most recent release to ensure PyTorch compatibility. For example, if the most recent version is Python 3.13, I recommend installing version 3.10 or 3.11.
> I recommend installing a Python version that is at least 1-3 versions older than the most recent release to ensure PyTorch compatibility. For example, if the most recent version is Python 3.13, I recommend installing version 3.10, 3.11, or 3.12.
Otherwise, if Python is not installed or is an older version, you can install it for your operating system as described below.
@ -62,7 +62,7 @@ Otherwise, if Python is not installed or is an older version, you can install it
```bash
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-dev
sudo apt install python3.11 python3.11-venv python3.11-dev
```
<br>
@ -246,7 +246,7 @@ conda create -n LLMs python=3.10
<img src="https://sebastianraschka.com/images/LLMs-from-scratch-images/setup/01_optional-python-setup-preferences/new-env.png" alt="new-env" width="600px">
> Many scientific computing libraries do not immediately support the newest version of Python. Therefore, when installing PyTorch, it's advisable to use a version of Python that is one or two releases older. For instance, if the latest version of Python is 3.13, using Python 3.10 or 3.11 is recommended.
> Many scientific computing libraries do not immediately support the newest version of Python. Therefore, when installing PyTorch, it's advisable to use a version of Python that is one to three releases older. For instance, if the latest version of Python is 3.13, using Python 3.10, 3.11, or 3.12 is recommended.
Next, activate your new virtual environment (you have to do it every time you open a new terminal window or tab):

View File

@ -53,36 +53,28 @@ powershell -c "irm https://astral.sh/uv/install.ps1 | more"
> For more installation options, please refer to the official [uv documentation](https://docs.astral.sh/uv/getting-started/installation/#standalone-installer).
&nbsp;
## 2. Install Python
You can install Python using uv:
```bash
uv python install 3.10
```
&nbsp;
> [!NOTE]
> I recommend installing a Python version that is at least 2 versions older than the most recent release to ensure PyTorch compatibility. For example, if the most recent version is Python 3.13, I recommend installing version 3.10 or 3.11. You can find out the most recent Python version by visiting [python.org](https://www.python.org/downloads/).
&nbsp;
## 3. Install Python packages and dependencies
## 2. Install Python packages and dependencies
To install all required packages from a `pyproject.toml` file (such as the one located at the top level of this GitHub repository), run the following command, assuming the file is in the same directory as your terminal session:
```bash
uv add . --dev
uv sync --dev --python 3.11
```
> [!NOTE]
> If you do not have Python 3.11 available on your system, uv will download and install it for you.
>
> I recommend using a Python version that is at least 1-3 versions older than the most recent release to ensure PyTorch compatibility. For example, if the most recent version is Python 3.13, I recommend using version 3.10, 3.11, 3.12. You can find out the most recent Python version by visiting [python.org](https://www.python.org/downloads/).
> [!NOTE]
> If you have problems with the following commands above due to certain dependencies (for example, if you are using Windows), you can always fall back to regular pip:
> `uv add pip`
> `uv run python -m pip install -U -r requirements.txt`
<img src="https://sebastianraschka.com/images/LLMs-from-scratch-images/setup/uv-setup/uv-add.png?1" width="700" height="auto" alt="Uv install">
Note that the `uv add` command above will create a separate virtual environment via the `.venv` subfolder. (In case you want to delete your virtual environment to start from scratch, you can simply delete the `.venv` folder.)
Note that the `uv sync` command above will create a separate virtual environment via the `.venv` subfolder. (In case you want to delete your virtual environment to start from scratch, you can simply delete the `.venv` folder.)
You can install new packages, that are not specified in the `pyproject.toml` via `uv add`, for example: